| // 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.null_test; |
| |
| import 'dart:mirrors'; |
| |
| import 'package:expect/expect.dart'; |
| |
| main() { |
| InstanceMirror nullMirror = reflect(null); |
| Expect.isTrue(nullMirror.getField(const Symbol('hashCode')).reflectee is int); |
| Expect.equals('Null', |
| nullMirror.getField(const Symbol('runtimeType')).reflectee |
| .toString()); |
| Expect.isTrue(nullMirror.invoke(const Symbol('=='), [null]).reflectee); |
| Expect.isFalse(nullMirror.invoke(const Symbol('=='), [new Object()]) |
| .reflectee); |
| Expect.equals('null', |
| nullMirror.invoke(const Symbol('toString'), []).reflectee); |
| Expect.throws(() => nullMirror.invoke(const Symbol('notDefined'), []), |
| (e) => e is NoSuchMethodError, |
| 'noSuchMethod'); |
| |
| ClassMirror NullMirror = nullMirror.type; |
| Expect.equals(const Symbol('Null'), NullMirror.simpleName); |
| Expect.equals(const Symbol('Object'), NullMirror.superclass.simpleName); |
| Expect.equals(null, NullMirror.superclass.superclass); |
| Expect.equals(null, NullMirror.owner); // Null belongs to no library. |
| } |