// 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.

/**
 * @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]);
    });
  });
}
