Index: test/matchers_unminified_test.dart |
diff --git a/test/matchers_unminified_test.dart b/test/matchers_unminified_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f301dd144a04b123667f9118bf57e510c11e18a6 |
--- /dev/null |
+++ b/test/matchers_unminified_test.dart |
@@ -0,0 +1,136 @@ |
+// 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. |
+ |
+// This file is for matcher tests that rely on the names of various Dart types. |
+// These tests will fail when run in minified dart2js, since the names will be |
+// mangled. A version of this file that works in minified dart2js is in |
+// matchers_minified_test.dart. |
+ |
+library unittest.unminified_test; |
+ |
+import 'package:unittest/unittest.dart'; |
+ |
+import 'test_utils.dart'; |
+ |
+void main() { |
+ group('Core matchers', () { |
+ test('throwsFormatException', () { |
+ shouldPass(() { |
+ throw new FormatException(''); |
+ }, throwsFormatException); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsFormatException, matches(r"Expected: throws FormatException +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsArgumentError', () { |
+ shouldPass(() { |
+ throw new ArgumentError(''); |
+ }, throwsArgumentError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsArgumentError, matches(r"Expected: throws ArgumentError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsRangeError', () { |
+ shouldPass(() { |
+ throw new RangeError(0); |
+ }, throwsRangeError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsRangeError, matches(r"Expected: throws RangeError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsNoSuchMethodError', () { |
+ shouldPass(() { |
+ throw new NoSuchMethodError(null, const Symbol(''), null, null); |
+ }, throwsNoSuchMethodError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsNoSuchMethodError, matches( |
+ r"Expected: throws NoSuchMethodError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsUnimplementedError', () { |
+ shouldPass(() { |
+ throw new UnimplementedError(''); |
+ }, throwsUnimplementedError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsUnimplementedError, matches( |
+ r"Expected: throws UnimplementedError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsUnsupportedError', () { |
+ shouldPass(() { |
+ throw new UnsupportedError(''); |
+ }, throwsUnsupportedError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsUnsupportedError, matches(r"Expected: throws UnsupportedError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ |
+ test('throwsStateError', () { |
+ shouldPass(() { |
+ throw new StateError(''); |
+ }, throwsStateError); |
+ shouldFail(() { |
+ throw new Exception(); |
+ }, throwsStateError, matches(r"Expected: throws StateError +" |
+ r"Actual: <Closure(: \(\) => dynamic)?> +" |
+ r"Which: threw \?:<Exception>")); |
+ }); |
+ }); |
+ |
+ group('Iterable Matchers', () { |
+ test('isEmpty', () { |
+ var d = new SimpleIterable(0); |
+ var e = new SimpleIterable(1); |
+ shouldPass(d, isEmpty); |
+ shouldFail(e, isEmpty, "Expected: empty " |
+ "Actual: SimpleIterable:[1]"); |
+ }); |
+ |
+ test('isNotEmpty', () { |
+ var d = new SimpleIterable(0); |
+ var e = new SimpleIterable(1); |
+ shouldPass(e, isNotEmpty); |
+ shouldFail(d, isNotEmpty, "Expected: non-empty " |
+ "Actual: SimpleIterable:[]"); |
+ }); |
+ |
+ test('contains', () { |
+ var d = new SimpleIterable(3); |
+ shouldPass(d, contains(2)); |
+ shouldFail(d, contains(5), "Expected: contains <5> " |
+ "Actual: SimpleIterable:[3, 2, 1]"); |
+ }); |
+ }); |
+ |
+ group('Feature Matchers', () { |
+ test("Feature Matcher", () { |
+ var w = new Widget(); |
+ w.price = 10; |
+ shouldPass(w, new HasPrice(10)); |
+ shouldPass(w, new HasPrice(greaterThan(0))); |
+ shouldFail(w, new HasPrice(greaterThan(10)), |
+ "Expected: Widget with a price that is a value greater than <10> " |
+ "Actual: <Instance of 'Widget'> " |
+ "Which: has price with value <10> which is not " |
+ "a value greater than <10>"); |
+ }); |
+ }); |
+} |