Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(382)

Side by Side Diff: pkg/matcher/lib/src/core_matchers.dart

Issue 763783003: Add isNotEmpty to core_matchers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 library matcher.core_matchers; 5 library matcher.core_matchers;
6 6
7 import 'description.dart'; 7 import 'description.dart';
8 import 'interfaces.dart'; 8 import 'interfaces.dart';
9 import 'util.dart'; 9 import 'util.dart';
10 10
11 /// Returns a matcher that matches empty strings, maps or iterables 11 /// Returns a matcher that matches empty strings, maps or iterables
12 /// (including collections). 12 /// (including collections) using the isEmpty property.
13 const Matcher isEmpty = const _Empty(); 13 const Matcher isEmpty = const _Empty();
14 14
15 class _Empty extends Matcher { 15 class _Empty extends Matcher {
16 const _Empty(); 16 const _Empty();
17 bool matches(item, Map matchState) { 17 bool matches(item, Map matchState) {
18 if (item is Map || item is Iterable) { 18 return (item is Map || item is Iterable || item is String) && item.isEmpty;
19 return item.isEmpty;
20 } else if (item is String) {
21 return item.length == 0;
22 } else {
23 return false;
24 }
25 } 19 }
26 Description describe(Description description) => description.add('empty'); 20 Description describe(Description description) => description.add('empty');
27 } 21 }
28 22
23 /// Returns a matcher that matches non-empty strings, maps or iterables
24 /// (including collections) using the isNotEmpty property.
25 const Matcher isNotEmpty = const _NotEmpty();
26
27 class _NotEmpty extends Matcher {
28 const _NotEmpty();
29 bool matches(item, Map matchState) {
nweiz 2014/12/01 22:18:07 Nit: empty lines between members. The existing co
blackhc 2014/12/03 10:07:17 Done.
30 return (item is Map || item is Iterable || item is String) &&
31 item.isNotEmpty;
32 }
33 Description describe(Description description) => description.add('non-empty');
34 }
35
29 /// A matcher that matches any null value. 36 /// A matcher that matches any null value.
30 const Matcher isNull = const _IsNull(); 37 const Matcher isNull = const _IsNull();
31 38
32 /// A matcher that matches any non-null value. 39 /// A matcher that matches any non-null value.
33 const Matcher isNotNull = const _IsNotNull(); 40 const Matcher isNotNull = const _IsNotNull();
34 41
35 class _IsNull extends Matcher { 42 class _IsNull extends Matcher {
36 const _IsNull(); 43 const _IsNull();
37 bool matches(item, Map matchState) => item == null; 44 bool matches(item, Map matchState) => item == null;
38 Description describe(Description description) => description.add('null'); 45 Description describe(Description description) => description.add('null');
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 addDescriptionOf(matchState['feature']); 646 addDescriptionOf(matchState['feature']);
640 var innerDescription = new StringDescription(); 647 var innerDescription = new StringDescription();
641 _matcher.describeMismatch(matchState['feature'], innerDescription, 648 _matcher.describeMismatch(matchState['feature'], innerDescription,
642 matchState['state'], verbose); 649 matchState['state'], verbose);
643 if (innerDescription.length > 0) { 650 if (innerDescription.length > 0) {
644 mismatchDescription.add(' which ').add(innerDescription.toString()); 651 mismatchDescription.add(' which ').add(innerDescription.toString());
645 } 652 }
646 return mismatchDescription; 653 return mismatchDescription;
647 } 654 }
648 } 655 }
OLDNEW
« no previous file with comments | « no previous file | pkg/matcher/test/iterable_matchers_test.dart » ('j') | pkg/matcher/test/matchers_unminified_test.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698