blob: 72f5e23c7fbef2778e3cba073075ef25a8082aa6 [file] [log] [blame]
// 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(#hashCode).reflectee is int);
Expect.equals(null.hashCode,
nullMirror.getField(#hashCode).reflectee);
Expect.equals('Null',
nullMirror.getField(#runtimeType).reflectee
.toString());
Expect.isTrue(nullMirror.invoke(#==, [null]).reflectee);
Expect.isFalse(nullMirror.invoke(#==, [new Object()])
.reflectee);
Expect.equals('null',
nullMirror.invoke(#toString, []).reflectee);
Expect.throws(() => nullMirror.invoke(#notDefined, []),
(e) => e is NoSuchMethodError,
'noSuchMethod');
ClassMirror NullMirror = nullMirror.type;
Expect.equals(reflectClass(Null), NullMirror);
Expect.equals(#Null, NullMirror.simpleName);
Expect.equals(#Object, NullMirror.superclass.simpleName);
Expect.equals(null, NullMirror.superclass.superclass);
Expect.listEquals([], NullMirror.superinterfaces);
Expect.equals(currentMirrorSystem().libraries[Uri.parse('dart:core')],
NullMirror.owner);
}