Index: test/test_utils.dart |
diff --git a/test/test_utils.dart b/test/test_utils.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f86631bbbfaa979d942d624dc37d6c8829a677f4 |
--- /dev/null |
+++ b/test/test_utils.dart |
@@ -0,0 +1,81 @@ |
+// 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 unittest.test_utils; |
+ |
+import 'dart:collection'; |
+ |
+import 'package:unittest/unittest.dart'; |
+ |
+void shouldFail(value, Matcher matcher, expected) { |
+ var failed = false; |
+ try { |
+ expect(value, matcher); |
+ } on TestFailure catch (err) { |
+ failed = true; |
+ |
+ var _errorString = err.message; |
+ |
+ if (expected is String) { |
+ expect(_errorString, equalsIgnoringWhitespace(expected)); |
+ } else { |
+ expect(_errorString.replaceAll('\n', ''), expected); |
+ } |
+ } |
+ |
+ expect(failed, isTrue, reason: 'Expected to fail.'); |
+} |
+ |
+void shouldPass(value, Matcher matcher) { |
+ expect(value, matcher); |
+} |
+ |
+class Widget { |
+ int price; |
+} |
+ |
+class HasPrice extends CustomMatcher { |
+ HasPrice(matcher) : super("Widget with a price that is", "price", matcher); |
+ featureValueOf(actual) => actual.price; |
+} |
+ |
+class SimpleIterable extends IterableBase<int> { |
+ final int count; |
+ |
+ SimpleIterable(this.count); |
+ |
+ bool contains(int val) => count < val ? false : true; |
+ |
+ bool any(bool f(element)) { |
+ for (var i = 0; i <= count; i++) { |
+ if (f(i)) return true; |
+ } |
+ return false; |
+ } |
+ |
+ String toString() => "<[$count]>"; |
+ |
+ Iterator get iterator { |
+ return new _SimpleIterator(count); |
+ } |
+} |
+ |
+class _SimpleIterator implements Iterator<int> { |
+ int _count; |
+ int _current; |
+ |
+ _SimpleIterator(this._count); |
+ |
+ bool moveNext() { |
+ if (_count > 0) { |
+ _current = _count; |
+ _count--; |
+ return true; |
+ } |
+ _current = null; |
+ return false; |
+ } |
+ |
+ int get current => _current; |
+} |