// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// @dart = 2.9

/// @assertion abstract dynamic operator [](Symbol key)
/// Retrieves the zone-value associated with key.
/// If this zone does not contain the value looks up the same key in the 
/// parent zone. If the key is not found returns null.
/// @description Check that operator[] returns expected values.
/// @author ilya


import "dart:async";
import "../../../Utils/expect.dart";

main() {
  Zone.current.fork(zoneValues: {#a:1, #b:2}).run(() {
    Expect.equals(1, Zone.current[#a]);
    Expect.equals(2, Zone.current[#b]);
    Zone.current.fork(zoneValues: {#a:11}).run(() {
      Expect.equals(11, Zone.current[#a]);
      Expect.equals(2, Zone.current[#b]);
      Expect.equals(1, Zone.current.parent[#a]);
      Expect.isNull(Zone.current[#c]);
    });
  });
}
