| // Copyright (c) 2013, 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. | 
 |  | 
 | library test.model_test; | 
 |  | 
 | import 'package:expect/expect.dart'; | 
 |  | 
 | import 'model.dart'; | 
 |  | 
 | main() { | 
 |   dynamic a = new A(); | 
 |   dynamic b = new B(); | 
 |   dynamic c = new C(); | 
 |  | 
 |   Expect.isNull(a.field); | 
 |   Expect.equals('B:get field', b.field); | 
 |   Expect.equals('B:get field', c.field); | 
 |  | 
 |   a.field = 42; | 
 |   b.field = 87; | 
 |   c.field = 89; | 
 |   Expect.equals(42, a.field); | 
 |   Expect.equals('B:get field', b.field); | 
 |   Expect.equals('B:get field', c.field); | 
 |   Expect.equals(89, fieldC); | 
 |  | 
 |   Expect.equals('A:instanceMethod(7)', a.instanceMethod(7)); | 
 |   Expect.equals('B:instanceMethod(9)', b.instanceMethod(9)); | 
 |   Expect.equals('C:instanceMethod(13)', c.instanceMethod(13)); | 
 |  | 
 |   Expect.equals('A:get accessor', a.accessor); | 
 |   Expect.equals('B:get accessor', b.accessor); | 
 |   Expect.equals('C:get accessor', c.accessor); | 
 |  | 
 |   a.accessor = 'foo'; | 
 |   b.accessor = 'bar'; | 
 |   c.accessor = 'baz'; | 
 |  | 
 |   Expect.equals('foo', accessorA); | 
 |   Expect.equals('bar', accessorB); | 
 |   Expect.equals('baz', accessorC); | 
 |  | 
 |   Expect.equals('aMethod', a.aMethod()); | 
 |   Expect.equals('aMethod', b.aMethod()); | 
 |   Expect.equals('aMethod', c.aMethod()); | 
 |  | 
 |   Expect.throwsNoSuchMethodError(() => a.bMethod()); | 
 |   Expect.equals('bMethod', b.bMethod()); | 
 |   Expect.equals('bMethod', c.bMethod()); | 
 |  | 
 |   Expect.throwsNoSuchMethodError(() => a.cMethod()); | 
 |   Expect.throwsNoSuchMethodError(() => b.cMethod()); | 
 |   Expect.equals('cMethod', c.cMethod()); | 
 | } |