OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 | 5 |
6 /** | 6 /** |
7 * Returns a matcher that matches empty strings, maps or collections. | 7 * Returns a matcher that matches empty strings, maps or collections. |
8 */ | 8 */ |
9 final Matcher isEmpty = const _Empty(); | 9 final Matcher isEmpty = const _Empty(); |
10 | 10 |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 * | 208 * |
209 * For example, to test whether 'bar' is an instance of type | 209 * For example, to test whether 'bar' is an instance of type |
210 * 'Foo', we would write: | 210 * 'Foo', we would write: |
211 * | 211 * |
212 * expect(bar, new isInstanceOf<Foo>()); | 212 * expect(bar, new isInstanceOf<Foo>()); |
213 * | 213 * |
214 * To get better error message, supply a name when creating the | 214 * To get better error message, supply a name when creating the |
215 * Type wrapper; e.g.: | 215 * Type wrapper; e.g.: |
216 * | 216 * |
217 * expect(bar, new isInstanceOf<Foo>('Foo')); | 217 * expect(bar, new isInstanceOf<Foo>('Foo')); |
| 218 * |
| 219 * Note that this does not currently work in dart2js; it will |
| 220 * match any type, and isNot(new isInstanceof<T>()) will always |
| 221 * fail. This is because dart2js currently ignores template type |
| 222 * parameters. |
218 */ | 223 */ |
219 class isInstanceOf<T> extends BaseMatcher { | 224 class isInstanceOf<T> extends BaseMatcher { |
220 final String _name; | 225 final String _name; |
221 const isInstanceOf([name = 'specified type']) : this._name = name; | 226 const isInstanceOf([name = 'specified type']) : this._name = name; |
222 bool matches(obj, MatchState matchState) => obj is T; | 227 bool matches(obj, MatchState matchState) => obj is T; |
223 // The description here is lame :-( | 228 // The description here is lame :-( |
224 Description describe(Description description) => | 229 Description describe(Description description) => |
225 description.add('an instance of ${_name}'); | 230 description.add('an instance of ${_name}'); |
226 } | 231 } |
227 | 232 |
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
617 final _matcher; | 622 final _matcher; |
618 final String _description; | 623 final String _description; |
619 | 624 |
620 const _Predicate(this._matcher, this._description); | 625 const _Predicate(this._matcher, this._description); |
621 | 626 |
622 bool matches(item, MatchState matchState) => _matcher(item); | 627 bool matches(item, MatchState matchState) => _matcher(item); |
623 | 628 |
624 Description describe(Description description) => | 629 Description describe(Description description) => |
625 description.add(_description); | 630 description.add(_description); |
626 } | 631 } |
OLD | NEW |