Index: packages/matcher/test/mirror_matchers_test.dart |
diff --git a/packages/matcher/test/mirror_matchers_test.dart b/packages/matcher/test/mirror_matchers_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f1781c1c09c51f97b78566ce8e941d5f0c33c790 |
--- /dev/null |
+++ b/packages/matcher/test/mirror_matchers_test.dart |
@@ -0,0 +1,44 @@ |
+// Copyright (c) 2012, 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 matcher.mirror_test; |
+ |
+import 'package:matcher/mirror_matchers.dart'; |
+import 'package:test/test.dart' show test; |
+ |
+import 'test_utils.dart'; |
+ |
+class C { |
+ var instanceField = 1; |
+ get instanceGetter => 2; |
+ static var staticField = 3; |
+ static get staticGetter => 4; |
+} |
+ |
+void main() { |
+ test('hasProperty', () { |
+ var foo = [3]; |
+ shouldPass(foo, hasProperty('length', 1)); |
+ shouldFail(foo, hasProperty('foo'), 'Expected: has property "foo" ' |
+ 'Actual: [3] ' |
+ 'Which: has no property named "foo"'); |
+ shouldFail(foo, hasProperty('length', 2), |
+ 'Expected: has property "length" which matches <2> ' |
+ 'Actual: [3] ' |
+ 'Which: has property "length" with value <1>'); |
+ var c = new C(); |
+ shouldPass(c, hasProperty('instanceField', 1)); |
+ shouldPass(c, hasProperty('instanceGetter', 2)); |
+ shouldFail(c, hasProperty('staticField'), |
+ 'Expected: has property "staticField" ' |
+ 'Actual: <Instance of \'C\'> ' |
+ 'Which: has a member named "staticField",' |
+ ' but it is not an instance property'); |
+ shouldFail(c, hasProperty('staticGetter'), |
+ 'Expected: has property "staticGetter" ' |
+ 'Actual: <Instance of \'C\'> ' |
+ 'Which: has a member named "staticGetter",' |
+ ' but it is not an instance property'); |
+ }); |
+} |