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

Side by Side Diff: tests/lib/unittest/matchers_test.dart

Issue 10694146: Added ability to disable logging in mocks, to avoid the memory overhead if you don't need behavior … (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 5 months 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
« no previous file with comments | « tests/lib/unittest/instance_test.dart ('k') | tests/lib/unittest/unittest_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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('matcherTest'); 5 #library('matcherTest');
6 #import('../../../lib/unittest/unittest.dart'); 6 #import('../../../lib/unittest/unittest.dart');
7 #source('test_utils.dart'); 7 #source('test_utils.dart');
8 8
9 doesNotThrow() {} 9 doesNotThrow() {}
10 doesThrow() { throw 'X'; } 10 doesThrow() { throw 'X'; }
(...skipping 15 matching lines...) Expand all
26 void main() { 26 void main() {
27 27
28 initUtils(); 28 initUtils();
29 29
30 // Core matchers 30 // Core matchers
31 31
32 group('Core matchers', () { 32 group('Core matchers', () {
33 33
34 test('isTrue', () { 34 test('isTrue', () {
35 shouldPass(true, isTrue); 35 shouldPass(true, isTrue);
36 shouldFail(false, isTrue, "Expected: true but: was <false>"); 36 shouldFail(false, isTrue, "Expected: true but: was <false>.");
37 }); 37 });
38 38
39 test('isFalse', () { 39 test('isFalse', () {
40 shouldPass(false, isFalse); 40 shouldPass(false, isFalse);
41 shouldFail(true, isFalse, "Expected: false but: was <true>"); 41 shouldFail(true, isFalse, "Expected: false but: was <true>.");
42 }); 42 });
43 43
44 test('isNull', () { 44 test('isNull', () {
45 shouldPass(null, isNull); 45 shouldPass(null, isNull);
46 shouldFail(false, isNull, "Expected: null but: was <false>"); 46 shouldFail(false, isNull, "Expected: null but: was <false>.");
47 }); 47 });
48 48
49 test('isNotNull', () { 49 test('isNotNull', () {
50 shouldPass(false, isNotNull); 50 shouldPass(false, isNotNull);
51 shouldFail(null, isNotNull, "Expected: not null but: was <null>"); 51 shouldFail(null, isNotNull, "Expected: not null but: was <null>.");
52 }); 52 });
53 53
54 test('same', () { 54 test('same', () {
55 var a = new Map(); 55 var a = new Map();
56 var b = new Map(); 56 var b = new Map();
57 shouldPass(a, same(a)); 57 shouldPass(a, same(a));
58 shouldFail(b, same(a), "Expected: same instance as <{}> but: was <{}>"); 58 shouldFail(b, same(a), "Expected: same instance as <{}> but: was <{}>.");
59 }); 59 });
60 60
61 test('equals', () { 61 test('equals', () {
62 var a = new Map(); 62 var a = new Map();
63 var b = new Map(); 63 var b = new Map();
64 shouldPass(a, equals(a)); 64 shouldPass(a, equals(a));
65 shouldPass(a, equals(b)); 65 shouldPass(a, equals(b));
66 }); 66 });
67 67
68 test('anything', () { 68 test('anything', () {
69 var a = new Map(); 69 var a = new Map();
70 shouldPass(0, anything); 70 shouldPass(0, anything);
71 shouldPass(null, anything); 71 shouldPass(null, anything);
72 shouldPass(a, anything); 72 shouldPass(a, anything);
73 shouldFail(a, isNot(anything), "Expected: not anything but: was <{}>"); 73 shouldFail(a, isNot(anything), "Expected: not anything but: was <{}>.");
74 }); 74 });
75 75
76 test('throws', () { 76 test('throws', () {
77 shouldFail(doesNotThrow, throws, 77 shouldFail(doesNotThrow, throws,
78 "Expected: throws an exception but: no exception"); 78 "Expected: throws an exception but: no exception.");
79 shouldPass(doesThrow, throws); 79 shouldPass(doesThrow, throws);
80 }); 80 });
81 81
82 test('throwsA', () { 82 test('throwsA', () {
83 shouldPass(doesThrow, throwsA(equals('X'))); 83 shouldPass(doesThrow, throwsA(equals('X')));
84 shouldFail(doesThrow, throwsA(equals('Y')), 84 shouldFail(doesThrow, throwsA(equals('Y')),
85 "Expected: throws an exception which matches 'Y' " 85 "Expected: throws an exception which matches 'Y' "
86 "but: no exception or exception does not match 'Y'"); 86 "but: no exception or exception does not match 'Y'.");
87 }); 87 });
88 88
89 test('throwsBadNumberFormatException', () { 89 test('throwsBadNumberFormatException', () {
90 shouldPass(() { throw new BadNumberFormatException(''); }, 90 shouldPass(() { throw new BadNumberFormatException(''); },
91 throwsBadNumberFormatException); 91 throwsBadNumberFormatException);
92 shouldFail(() { throw new Exception(); }, 92 shouldFail(() { throw new Exception(); },
93 throwsBadNumberFormatException, 93 throwsBadNumberFormatException,
94 "Expected: throws an exception which matches BadNumberFormatException " 94 "Expected: throws an exception which matches BadNumberFormatException "
95 "but: no exception or exception does not match " 95 "but: no exception or exception does not match "
96 "BadNumberFormatException"); 96 "BadNumberFormatException.");
97 }); 97 });
98 98
99 test('throwsIllegalArgumentException', () { 99 test('throwsIllegalArgumentException', () {
100 shouldPass(() { throw new IllegalArgumentException(''); }, 100 shouldPass(() { throw new IllegalArgumentException(''); },
101 throwsIllegalArgumentException); 101 throwsIllegalArgumentException);
102 shouldFail(() { throw new Exception(); }, 102 shouldFail(() { throw new Exception(); },
103 throwsIllegalArgumentException, 103 throwsIllegalArgumentException,
104 "Expected: throws an exception which matches IllegalArgumentException " 104 "Expected: throws an exception which matches IllegalArgumentException "
105 "but: no exception or exception does not match " 105 "but: no exception or exception does not match "
106 "IllegalArgumentException"); 106 "IllegalArgumentException.");
107 }); 107 });
108 108
109 test('throwsIllegalJSRegExpException', () { 109 test('throwsIllegalJSRegExpException', () {
110 shouldPass(() { throw new IllegalJSRegExpException('',''); }, 110 shouldPass(() { throw new IllegalJSRegExpException('',''); },
111 throwsIllegalJSRegExpException); 111 throwsIllegalJSRegExpException);
112 shouldFail(() { throw new Exception(); }, 112 shouldFail(() { throw new Exception(); },
113 throwsIllegalJSRegExpException, 113 throwsIllegalJSRegExpException,
114 "Expected: throws an exception which matches IllegalJSRegExpException " 114 "Expected: throws an exception which matches IllegalJSRegExpException "
115 "but: no exception or exception does not match " 115 "but: no exception or exception does not match "
116 "IllegalJSRegExpException"); 116 "IllegalJSRegExpException.");
117 }); 117 });
118 118
119 test('throwsIndexOutOfRangeException', () { 119 test('throwsIndexOutOfRangeException', () {
120 shouldPass(() { throw new IndexOutOfRangeException(0); }, 120 shouldPass(() { throw new IndexOutOfRangeException(0); },
121 throwsIndexOutOfRangeException); 121 throwsIndexOutOfRangeException);
122 shouldFail(() { throw new Exception(); }, 122 shouldFail(() { throw new Exception(); },
123 throwsIndexOutOfRangeException, 123 throwsIndexOutOfRangeException,
124 "Expected: throws an exception which matches IndexOutOfRangeException " 124 "Expected: throws an exception which matches IndexOutOfRangeException "
125 "but: no exception or exception does not match " 125 "but: no exception or exception does not match "
126 "IndexOutOfRangeException"); 126 "IndexOutOfRangeException.");
127 }); 127 });
128 128
129 test('throwsNoSuchMethodException', () { 129 test('throwsNoSuchMethodException', () {
130 shouldPass(() { throw new NoSuchMethodException(null, '', null); }, 130 shouldPass(() { throw new NoSuchMethodException(null, '', null); },
131 throwsNoSuchMethodException); 131 throwsNoSuchMethodException);
132 shouldFail(() { throw new Exception(); }, 132 shouldFail(() { throw new Exception(); },
133 throwsNoSuchMethodException, 133 throwsNoSuchMethodException,
134 "Expected: throws an exception which matches NoSuchMethodException " 134 "Expected: throws an exception which matches NoSuchMethodException "
135 "but: no exception or exception does not match " 135 "but: no exception or exception does not match "
136 "NoSuchMethodException"); 136 "NoSuchMethodException.");
137 }); 137 });
138 138
139 test('throwsNotImplementedException', () { 139 test('throwsNotImplementedException', () {
140 shouldPass(() { throw new NotImplementedException(''); }, 140 shouldPass(() { throw new NotImplementedException(''); },
141 throwsNotImplementedException); 141 throwsNotImplementedException);
142 shouldFail(() { throw new Exception(); }, 142 shouldFail(() { throw new Exception(); },
143 throwsNotImplementedException, 143 throwsNotImplementedException,
144 "Expected: throws an exception which matches NotImplementedException " 144 "Expected: throws an exception which matches NotImplementedException "
145 "but: no exception or exception does not match " 145 "but: no exception or exception does not match "
146 "NotImplementedException"); 146 "NotImplementedException.");
147 }); 147 });
148 148
149 test('throwsNullPointerException', () { 149 test('throwsNullPointerException', () {
150 shouldPass(() { throw new NullPointerException(''); }, 150 shouldPass(() { throw new NullPointerException(''); },
151 throwsNullPointerException); 151 throwsNullPointerException);
152 shouldFail(() { throw new Exception(); }, 152 shouldFail(() { throw new Exception(); },
153 throwsNullPointerException, 153 throwsNullPointerException,
154 "Expected: throws an exception which matches NullPointerException " 154 "Expected: throws an exception which matches NullPointerException "
155 "but: no exception or exception does not match " 155 "but: no exception or exception does not match "
156 "NullPointerException"); 156 "NullPointerException.");
157 }); 157 });
158 158
159 test('throwsUnsupportedOperationException', () { 159 test('throwsUnsupportedOperationException', () {
160 shouldPass(() { throw new UnsupportedOperationException(''); }, 160 shouldPass(() { throw new UnsupportedOperationException(''); },
161 throwsUnsupportedOperationException); 161 throwsUnsupportedOperationException);
162 shouldFail(() { throw new Exception(); }, 162 shouldFail(() { throw new Exception(); },
163 throwsUnsupportedOperationException, 163 throwsUnsupportedOperationException,
164 "Expected: throws an exception which matches " 164 "Expected: throws an exception which matches "
165 "UnsupportedOperationException " 165 "UnsupportedOperationException "
166 "but: no exception or exception does not match " 166 "but: no exception or exception does not match "
167 "UnsupportedOperationException"); 167 "UnsupportedOperationException.");
168 }); 168 });
169 169
170 test('returnsNormally', () { 170 test('returnsNormally', () {
171 shouldPass(doesNotThrow, returnsNormally); 171 shouldPass(doesNotThrow, returnsNormally);
172 shouldFail(doesThrow, returnsNormally, 172 shouldFail(doesThrow, returnsNormally,
173 "Expected: return normally but: threw exception"); 173 "Expected: return normally but: threw exception.");
174 }); 174 });
175 175
176 test('hasLength', () { 176 test('hasLength', () {
177 var a = new Map(); 177 var a = new Map();
178 var b = new List(); 178 var b = new List();
179 shouldPass(a, hasLength(0)); 179 shouldPass(a, hasLength(0));
180 shouldPass(b, hasLength(0)); 180 shouldPass(b, hasLength(0));
181 shouldPass('a', hasLength(1)); 181 shouldPass('a', hasLength(1));
182 shouldFail(0, hasLength(0), new PrefixMatcher( 182 shouldFail(0, hasLength(0), new PrefixMatcher(
183 "Expected: an object with length of <0> " 183 "Expected: an object with length of <0> "
184 "but: was <0> has no length property")); 184 "but: was <0> has no length property."));
185 185
186 b.add(0); 186 b.add(0);
187 shouldPass(b, hasLength(1)); 187 shouldPass(b, hasLength(1));
188 shouldFail(b, hasLength(2), 188 shouldFail(b, hasLength(2),
189 "Expected: an object with length of <2> " 189 "Expected: an object with length of <2> "
190 "but: was <[0]> with length of <1>"); 190 "but: was <[0]> with length of <1>.");
191 191
192 b.add(0); 192 b.add(0);
193 shouldFail(b, hasLength(1), 193 shouldFail(b, hasLength(1),
194 "Expected: an object with length of <1> " 194 "Expected: an object with length of <1> "
195 "but: was <[0, 0]> with length of <2>"); 195 "but: was <[0, 0]> with length of <2>.");
196 shouldPass(b, hasLength(2)); 196 shouldPass(b, hasLength(2));
197 }); 197 });
198 }); 198 });
199 199
200 group('Numeric Matchers', () { 200 group('Numeric Matchers', () {
201 201
202 test('greaterThan', () { 202 test('greaterThan', () {
203 shouldPass(10, greaterThan(9)); 203 shouldPass(10, greaterThan(9));
204 shouldFail(9, greaterThan(10), 204 shouldFail(9, greaterThan(10),
205 "Expected: a value greater than <10> but: was <9>"); 205 "Expected: a value greater than <10> but: was <9>.");
206 }); 206 });
207 207
208 test('greaterThanOrEqualTo', () { 208 test('greaterThanOrEqualTo', () {
209 shouldPass(10, greaterThanOrEqualTo(10)); 209 shouldPass(10, greaterThanOrEqualTo(10));
210 shouldFail(9, greaterThanOrEqualTo(10), 210 shouldFail(9, greaterThanOrEqualTo(10),
211 "Expected: a value greater than or equal to <10> but: was <9>"); 211 "Expected: a value greater than or equal to <10> but: was <9>.");
212 }); 212 });
213 213
214 test('lessThan', () { 214 test('lessThan', () {
215 shouldFail(10, lessThan(9), "Expected: a value less than <9> " 215 shouldFail(10, lessThan(9), "Expected: a value less than <9> "
216 "but: was <10>"); 216 "but: was <10>.");
217 shouldPass(9, lessThan(10)); 217 shouldPass(9, lessThan(10));
218 }); 218 });
219 219
220 test('lessThanOrEqualTo', () { 220 test('lessThanOrEqualTo', () {
221 shouldPass(10, lessThanOrEqualTo(10)); 221 shouldPass(10, lessThanOrEqualTo(10));
222 shouldFail(11, lessThanOrEqualTo(10), 222 shouldFail(11, lessThanOrEqualTo(10),
223 "Expected: a value less than or equal to <10> but: was <11>"); 223 "Expected: a value less than or equal to <10> but: was <11>.");
224 }); 224 });
225 225
226 test('isZero', () { 226 test('isZero', () {
227 shouldPass(0, isZero); 227 shouldPass(0, isZero);
228 shouldFail(1, isZero, "Expected: a value equal to <0> but: was <1>"); 228 shouldFail(1, isZero, "Expected: a value equal to <0> but: was <1>.");
229 }); 229 });
230 230
231 test('isNonZero', () { 231 test('isNonZero', () {
232 shouldFail(0, isNonZero, "Expected: a value not equal to <0> " 232 shouldFail(0, isNonZero, "Expected: a value not equal to <0> "
233 "but: was <0>"); 233 "but: was <0>.");
234 shouldPass(1, isNonZero); 234 shouldPass(1, isNonZero);
235 }); 235 });
236 236
237 test('isPositive', () { 237 test('isPositive', () {
238 shouldFail(-1, isPositive, "Expected: a positive value " 238 shouldFail(-1, isPositive, "Expected: a positive value "
239 "but: was <-1>"); 239 "but: was <-1>.");
240 shouldFail(0, isPositive, "Expected: a positive value " 240 shouldFail(0, isPositive, "Expected: a positive value "
241 "but: was <0>"); 241 "but: was <0>.");
242 shouldPass(1, isPositive); 242 shouldPass(1, isPositive);
243 }); 243 });
244 244
245 test('isNegative', () { 245 test('isNegative', () {
246 shouldPass(-1, isNegative); 246 shouldPass(-1, isNegative);
247 shouldFail(0, isNegative, 247 shouldFail(0, isNegative,
248 "Expected: a negative value but: was <0>"); 248 "Expected: a negative value but: was <0>.");
249 }); 249 });
250 250
251 test('isNonPositive', () { 251 test('isNonPositive', () {
252 shouldPass(-1, isNonPositive); 252 shouldPass(-1, isNonPositive);
253 shouldPass(0, isNonPositive); 253 shouldPass(0, isNonPositive);
254 shouldFail(1, isNonPositive, 254 shouldFail(1, isNonPositive,
255 "Expected: a non-positive value but: was <1>"); 255 "Expected: a non-positive value but: was <1>.");
256 }); 256 });
257 257
258 test('isNonNegative', () { 258 test('isNonNegative', () {
259 shouldPass(1, isNonNegative); 259 shouldPass(1, isNonNegative);
260 shouldPass(0, isNonNegative); 260 shouldPass(0, isNonNegative);
261 shouldFail(-1, isNonNegative, 261 shouldFail(-1, isNonNegative,
262 "Expected: a non-negative value but: was <-1>"); 262 "Expected: a non-negative value but: was <-1>.");
263 }); 263 });
264 264
265 test('closeTo', () { 265 test('closeTo', () {
266 shouldPass(0, closeTo(0, 1)); 266 shouldPass(0, closeTo(0, 1));
267 shouldPass(-1, closeTo(0, 1)); 267 shouldPass(-1, closeTo(0, 1));
268 shouldPass(1, closeTo(0, 1)); 268 shouldPass(1, closeTo(0, 1));
269 shouldFail(1.001, closeTo(0, 1), 269 shouldFail(1.001, closeTo(0, 1),
270 "Expected: a numeric value within <1> of <0> " 270 "Expected: a numeric value within <1> of <0> "
271 "but: <1.001> differed by <1.001>"); 271 "but: <1.001> differed by <1.001>.");
272 shouldFail(-1.001, closeTo(0, 1), 272 shouldFail(-1.001, closeTo(0, 1),
273 "Expected: a numeric value within <1> of <0> " 273 "Expected: a numeric value within <1> of <0> "
274 "but: <-1.001> differed by <1.001>"); 274 "but: <-1.001> differed by <1.001>.");
275 }); 275 });
276 276
277 test('inInclusiveRange', () { 277 test('inInclusiveRange', () {
278 shouldFail(-1, inInclusiveRange(0,2), 278 shouldFail(-1, inInclusiveRange(0,2),
279 "Expected: be in range from 0 (inclusive) to 2 (inclusive) " 279 "Expected: be in range from 0 (inclusive) to 2 (inclusive) "
280 "but: was <-1>"); 280 "but: was <-1>.");
281 shouldPass(0, inInclusiveRange(0,2)); 281 shouldPass(0, inInclusiveRange(0,2));
282 shouldPass(1, inInclusiveRange(0,2)); 282 shouldPass(1, inInclusiveRange(0,2));
283 shouldPass(2, inInclusiveRange(0,2)); 283 shouldPass(2, inInclusiveRange(0,2));
284 shouldFail(3, inInclusiveRange(0,2), 284 shouldFail(3, inInclusiveRange(0,2),
285 "Expected: be in range from 0 (inclusive) to 2 (inclusive) " 285 "Expected: be in range from 0 (inclusive) to 2 (inclusive) "
286 "but: was <3>"); 286 "but: was <3>.");
287 }); 287 });
288 288
289 test('inExclusiveRange', () { 289 test('inExclusiveRange', () {
290 shouldFail(0, inExclusiveRange(0,2), 290 shouldFail(0, inExclusiveRange(0,2),
291 "Expected: be in range from 0 (exclusive) to 2 (exclusive) " 291 "Expected: be in range from 0 (exclusive) to 2 (exclusive) "
292 "but: was <0>"); 292 "but: was <0>.");
293 shouldPass(1, inExclusiveRange(0,2)); 293 shouldPass(1, inExclusiveRange(0,2));
294 shouldFail(2, inExclusiveRange(0,2), 294 shouldFail(2, inExclusiveRange(0,2),
295 "Expected: be in range from 0 (exclusive) to 2 (exclusive) " 295 "Expected: be in range from 0 (exclusive) to 2 (exclusive) "
296 "but: was <2>"); 296 "but: was <2>.");
297 }); 297 });
298 298
299 test('inOpenClosedRange', () { 299 test('inOpenClosedRange', () {
300 shouldFail(0, inOpenClosedRange(0,2), 300 shouldFail(0, inOpenClosedRange(0,2),
301 "Expected: be in range from 0 (exclusive) to 2 (inclusive) " 301 "Expected: be in range from 0 (exclusive) to 2 (inclusive) "
302 "but: was <0>"); 302 "but: was <0>.");
303 shouldPass(1, inOpenClosedRange(0,2)); 303 shouldPass(1, inOpenClosedRange(0,2));
304 shouldPass(2, inOpenClosedRange(0,2)); 304 shouldPass(2, inOpenClosedRange(0,2));
305 }); 305 });
306 306
307 test('inClosedOpenRange', () { 307 test('inClosedOpenRange', () {
308 shouldPass(0, inClosedOpenRange(0,2)); 308 shouldPass(0, inClosedOpenRange(0,2));
309 shouldPass(1, inClosedOpenRange(0,2)); 309 shouldPass(1, inClosedOpenRange(0,2));
310 shouldFail(2, inClosedOpenRange(0,2), 310 shouldFail(2, inClosedOpenRange(0,2),
311 "Expected: be in range from 0 (inclusive) to 2 (exclusive) " 311 "Expected: be in range from 0 (inclusive) to 2 (exclusive) "
312 "but: was <2>"); 312 "but: was <2>.");
313 }); 313 });
314 }); 314 });
315 315
316 group('String Matchers', () { 316 group('String Matchers', () {
317 317
318 test('isEmpty', () { 318 test('isEmpty', () {
319 shouldPass('', isEmpty); 319 shouldPass('', isEmpty);
320 shouldFail(null, isEmpty, 320 shouldFail(null, isEmpty,
321 "Expected: empty but: was <null>"); 321 "Expected: empty but: was <null>.");
322 shouldFail(0, isEmpty, 322 shouldFail(0, isEmpty,
323 "Expected: empty but: was <0>"); 323 "Expected: empty but: was <0>.");
324 shouldFail('a', isEmpty, "Expected: empty but: was 'a'"); 324 shouldFail('a', isEmpty, "Expected: empty but: was 'a'.");
325 }); 325 });
326 326
327 test('equalsIgnoringCase', () { 327 test('equalsIgnoringCase', () {
328 shouldPass('hello', equalsIgnoringCase('HELLO')); 328 shouldPass('hello', equalsIgnoringCase('HELLO'));
329 shouldFail('hi', equalsIgnoringCase('HELLO'), 329 shouldFail('hi', equalsIgnoringCase('HELLO'),
330 "Expected: 'HELLO' ignoring case but: was 'hi'"); 330 "Expected: 'HELLO' ignoring case but: was 'hi'.");
331 }); 331 });
332 332
333 test('equalsIgnoringWhitespace', () { 333 test('equalsIgnoringWhitespace', () {
334 shouldPass(' hello world ', equalsIgnoringWhitespace('hello world')); 334 shouldPass(' hello world ', equalsIgnoringWhitespace('hello world'));
335 shouldFail(' helloworld ', equalsIgnoringWhitespace('hello world'), 335 shouldFail(' helloworld ', equalsIgnoringWhitespace('hello world'),
336 "Expected: 'hello world' ignoring whitespace but: was 'helloworld'"); 336 "Expected: 'hello world' ignoring whitespace but: was 'helloworld'.");
337 }); 337 });
338 338
339 test('startsWith', () { 339 test('startsWith', () {
340 shouldPass('hello', startsWith('')); 340 shouldPass('hello', startsWith(''));
341 shouldPass('hello', startsWith('hell')); 341 shouldPass('hello', startsWith('hell'));
342 shouldPass('hello', startsWith('hello')); 342 shouldPass('hello', startsWith('hello'));
343 shouldFail('hello', startsWith('hello '), 343 shouldFail('hello', startsWith('hello '),
344 "Expected: a string starting with 'hello ' but: was 'hello'"); 344 "Expected: a string starting with 'hello ' but: was 'hello'.");
345 }); 345 });
346 346
347 test('endsWith', () { 347 test('endsWith', () {
348 shouldPass('hello', endsWith('')); 348 shouldPass('hello', endsWith(''));
349 shouldPass('hello', endsWith('lo')); 349 shouldPass('hello', endsWith('lo'));
350 shouldPass('hello', endsWith('hello')); 350 shouldPass('hello', endsWith('hello'));
351 shouldFail('hello', endsWith(' hello'), 351 shouldFail('hello', endsWith(' hello'),
352 "Expected: a string ending with ' hello' but: was 'hello'"); 352 "Expected: a string ending with ' hello' but: was 'hello'.");
353 }); 353 });
354 354
355 test('contains', () { 355 test('contains', () {
356 shouldPass('hello', contains('')); 356 shouldPass('hello', contains(''));
357 shouldPass('hello', contains('h')); 357 shouldPass('hello', contains('h'));
358 shouldPass('hello', contains('o')); 358 shouldPass('hello', contains('o'));
359 shouldPass('hello', contains('hell')); 359 shouldPass('hello', contains('hell'));
360 shouldPass('hello', contains('hello')); 360 shouldPass('hello', contains('hello'));
361 shouldFail('hello', contains(' '), 361 shouldFail('hello', contains(' '),
362 "Expected: contains ' ' but: was 'hello'"); 362 "Expected: contains ' ' but: was 'hello'.");
363 }); 363 });
364 364
365 test('stringContainsInOrder', () { 365 test('stringContainsInOrder', () {
366 shouldPass('goodbye cruel world', stringContainsInOrder([''])); 366 shouldPass('goodbye cruel world', stringContainsInOrder(['']));
367 shouldPass('goodbye cruel world', stringContainsInOrder(['goodbye'])); 367 shouldPass('goodbye cruel world', stringContainsInOrder(['goodbye']));
368 shouldPass('goodbye cruel world', stringContainsInOrder(['cruel'])); 368 shouldPass('goodbye cruel world', stringContainsInOrder(['cruel']));
369 shouldPass('goodbye cruel world', stringContainsInOrder(['world'])); 369 shouldPass('goodbye cruel world', stringContainsInOrder(['world']));
370 shouldPass('goodbye cruel world', 370 shouldPass('goodbye cruel world',
371 stringContainsInOrder(['good', 'bye', 'world'])); 371 stringContainsInOrder(['good', 'bye', 'world']));
372 shouldPass('goodbye cruel world', 372 shouldPass('goodbye cruel world',
373 stringContainsInOrder(['goodbye', 'cruel'])); 373 stringContainsInOrder(['goodbye', 'cruel']));
374 shouldPass('goodbye cruel world', 374 shouldPass('goodbye cruel world',
375 stringContainsInOrder(['cruel', 'world'])); 375 stringContainsInOrder(['cruel', 'world']));
376 shouldPass('goodbye cruel world', 376 shouldPass('goodbye cruel world',
377 stringContainsInOrder(['goodbye', 'cruel', 'world'])); 377 stringContainsInOrder(['goodbye', 'cruel', 'world']));
378 shouldFail('goodbye cruel world', 378 shouldFail('goodbye cruel world',
379 stringContainsInOrder(['goo', 'cruel', 'bye']), 379 stringContainsInOrder(['goo', 'cruel', 'bye']),
380 "Expected: a string containing 'goo', 'cruel', 'bye' in order " 380 "Expected: a string containing 'goo', 'cruel', 'bye' in order "
381 "but: was 'goodbye cruel world'"); 381 "but: was 'goodbye cruel world'.");
382 }); 382 });
383 383
384 test('matches', () { 384 test('matches', () {
385 shouldPass('c0d', matches('[a-z][0-9][a-z]')); 385 shouldPass('c0d', matches('[a-z][0-9][a-z]'));
386 shouldPass('c0d', matches(new RegExp('[a-z][0-9][a-z]'))); 386 shouldPass('c0d', matches(new RegExp('[a-z][0-9][a-z]')));
387 shouldFail('cOd', matches('[a-z][0-9][a-z]'), 387 shouldFail('cOd', matches('[a-z][0-9][a-z]'),
388 "Expected: match '[a-z][0-9][a-z]' but: was 'cOd'"); 388 "Expected: match '[a-z][0-9][a-z]' but: was 'cOd'.");
389 }); 389 });
390 }); 390 });
391 391
392 group('Collection Matchers', () { 392 group('Collection Matchers', () {
393 393
394 test('isEmpty', () { 394 test('isEmpty', () {
395 shouldPass([], isEmpty); 395 shouldPass([], isEmpty);
396 shouldFail([1], isEmpty, "Expected: empty but: was <[1]>"); 396 shouldFail([1], isEmpty, "Expected: empty but: was <[1]>.");
397 }); 397 });
398 398
399 test('contains', () { 399 test('contains', () {
400 var d = [1, 2]; 400 var d = [1, 2];
401 shouldPass(d, contains(1)); 401 shouldPass(d, contains(1));
402 shouldFail(d, contains(0), "Expected: contains <0> but: was <[1, 2]>"); 402 shouldFail(d, contains(0), "Expected: contains <0> but: was <[1, 2]>.");
403 }); 403 });
404 404
405 test('isIn', () { 405 test('isIn', () {
406 var d = [1, 2]; 406 var d = [1, 2];
407 shouldPass(1, isIn(d)); 407 shouldPass(1, isIn(d));
408 shouldFail(0, isIn(d), "Expected: is in <[1, 2]> but: was <0>"); 408 shouldFail(0, isIn(d), "Expected: is in <[1, 2]> but: was <0>.");
409 }); 409 });
410 410
411 test('everyElement', () { 411 test('everyElement', () {
412 var d = [1, 2]; 412 var d = [1, 2];
413 var e = [1, 1, 1]; 413 var e = [1, 1, 1];
414 shouldFail(d, everyElement(1), 414 shouldFail(d, everyElement(1),
415 "Expected: every element <1> but: was <[1, 2]>"); 415 "Expected: every element <1> but: was <[1, 2]>.");
416 shouldPass(e, everyElement(1)); 416 shouldPass(e, everyElement(1));
417 }); 417 });
418 418
419 test('someElement', () { 419 test('someElement', () {
420 var d = [1, 2]; 420 var d = [1, 2];
421 var e = [1, 1, 1]; 421 var e = [1, 1, 1];
422 shouldPass(d, someElement(2)); 422 shouldPass(d, someElement(2));
423 shouldFail(e, someElement(2), 423 shouldFail(e, someElement(2),
424 "Expected: some element <2> but: was <[1, 1, 1]>"); 424 "Expected: some element <2> but: was <[1, 1, 1]>.");
425 }); 425 });
426 426
427 test('orderedEquals', () { 427 test('orderedEquals', () {
428 shouldPass([null], orderedEquals([null])); 428 shouldPass([null], orderedEquals([null]));
429 var d = [1, 2]; 429 var d = [1, 2];
430 shouldPass(d, orderedEquals([1, 2])); 430 shouldPass(d, orderedEquals([1, 2]));
431 shouldFail(d, orderedEquals([2, 1]), 431 shouldFail(d, orderedEquals([2, 1]),
432 "Expected: equals <[2, 1]> ordered " 432 "Expected: equals <[2, 1]> ordered "
433 "but: was <1> mismatch at position 0"); 433 "but: was <1> mismatch at position 0.");
434 }); 434 });
435 435
436 test('unorderedEquals', () { 436 test('unorderedEquals', () {
437 var d = [1, 2]; 437 var d = [1, 2];
438 shouldPass(d, unorderedEquals([2, 1])); 438 shouldPass(d, unorderedEquals([2, 1]));
439 shouldFail(d, unorderedEquals([1]), 439 shouldFail(d, unorderedEquals([1]),
440 "Expected: equals <[1]> unordered " 440 "Expected: equals <[1]> unordered "
441 "but: has too many elements (2 > 1)"); 441 "but: has too many elements (2 > 1).");
442 shouldFail(d, unorderedEquals([3, 2, 1]), 442 shouldFail(d, unorderedEquals([3, 2, 1]),
443 "Expected: equals <[3, 2, 1]> unordered " 443 "Expected: equals <[3, 2, 1]> unordered "
444 "but: has too few elements (2 < 3)"); 444 "but: has too few elements (2 < 3).");
445 shouldFail(d, unorderedEquals([3, 1]), 445 shouldFail(d, unorderedEquals([3, 1]),
446 "Expected: equals <[3, 1]> unordered " 446 "Expected: equals <[3, 1]> unordered "
447 "but: has no match for element <3> at position 0"); 447 "but: has no match for element <3> at position 0.");
448 }); 448 });
449 }); 449 });
450 450
451 group('Map Matchers', () { 451 group('Map Matchers', () {
452 452
453 test('isEmpty', () { 453 test('isEmpty', () {
454 var a = new Map(); 454 var a = new Map();
455 shouldPass({}, isEmpty); 455 shouldPass({}, isEmpty);
456 shouldPass(a, isEmpty); 456 shouldPass(a, isEmpty);
457 a['foo'] = 'bar'; 457 a['foo'] = 'bar';
458 shouldFail(a, isEmpty, "Expected: empty but: was <{foo: bar}>"); 458 shouldFail(a, isEmpty, "Expected: empty but: was <{foo: bar}>.");
459 }); 459 });
460 460
461 test('contains', () { 461 test('contains', () {
462 var a = new Map(); 462 var a = new Map();
463 a['foo'] = 'bar'; 463 a['foo'] = 'bar';
464 var b = new Map(); 464 var b = new Map();
465 shouldPass(a, contains('foo')); 465 shouldPass(a, contains('foo'));
466 shouldFail(b, contains('foo'), 466 shouldFail(b, contains('foo'),
467 "Expected: contains 'foo' but: was <{}>"); 467 "Expected: contains 'foo' but: was <{}>.");
468 shouldFail(10, contains('foo'), 468 shouldFail(10, contains('foo'),
469 "Expected: contains 'foo' but: was <10>"); 469 "Expected: contains 'foo' but: was <10>.");
470 }); 470 });
471 471
472 test('containsValue', () { 472 test('containsValue', () {
473 var a = new Map(); 473 var a = new Map();
474 a['foo'] = 'bar'; 474 a['foo'] = 'bar';
475 shouldPass(a, containsValue('bar')); 475 shouldPass(a, containsValue('bar'));
476 shouldFail(a, containsValue('ba'), 476 shouldFail(a, containsValue('ba'),
477 "Expected: contains value 'ba' but: was <{foo: bar}>"); 477 "Expected: contains value 'ba' but: was <{foo: bar}>.");
478 }); 478 });
479 479
480 test('containsPair', () { 480 test('containsPair', () {
481 var a = new Map(); 481 var a = new Map();
482 a['foo'] = 'bar'; 482 a['foo'] = 'bar';
483 shouldPass(a, containsPair('foo', 'bar')); 483 shouldPass(a, containsPair('foo', 'bar'));
484 shouldFail(a, containsPair('foo', 'ba'), 484 shouldFail(a, containsPair('foo', 'ba'),
485 "Expected: contains pair 'foo' => 'ba' " 485 "Expected: contains pair 'foo' => 'ba' "
486 "but: contains key 'foo' but with value was 'bar'"); 486 "but: contains key 'foo' but with value was 'bar'.");
487 shouldFail(a, containsPair('fo', 'bar'), 487 shouldFail(a, containsPair('fo', 'bar'),
488 "Expected: contains pair 'fo' => 'bar' " 488 "Expected: contains pair 'fo' => 'bar' "
489 "but: <{foo: bar}> doesn't contain key 'fo'"); 489 "but: <{foo: bar}> doesn't contain key 'fo'.");
490 }); 490 });
491 491
492 test('hasLength', () { 492 test('hasLength', () {
493 var a = new Map(); 493 var a = new Map();
494 a['foo'] = 'bar'; 494 a['foo'] = 'bar';
495 var b = new Map(); 495 var b = new Map();
496 shouldPass(a, hasLength(1)); 496 shouldPass(a, hasLength(1));
497 shouldFail(b, hasLength(1), 497 shouldFail(b, hasLength(1),
498 "Expected: an object with length of <1> " 498 "Expected: an object with length of <1> "
499 "but: was <{}> with length of <0>"); 499 "but: was <{}> with length of <0>.");
500 }); 500 });
501 }); 501 });
502 502
503 group('Operator Matchers', () { 503 group('Operator Matchers', () {
504 504
505 test('anyOf', () { 505 test('anyOf', () {
506 shouldFail(0, anyOf([equals(1), equals(2)]), 506 shouldFail(0, anyOf([equals(1), equals(2)]),
507 "Expected: (<1> or <2>) but: was <0>"); 507 "Expected: (<1> or <2>) but: was <0>.");
508 shouldPass(1, anyOf([equals(1), equals(2)])); 508 shouldPass(1, anyOf([equals(1), equals(2)]));
509 }); 509 });
510 510
511 test('allOf', () { 511 test('allOf', () {
512 shouldPass(1, allOf([lessThan(10), greaterThan(0)])); 512 shouldPass(1, allOf([lessThan(10), greaterThan(0)]));
513 shouldFail(-1, allOf([lessThan(10), greaterThan(0)]), 513 shouldFail(-1, allOf([lessThan(10), greaterThan(0)]),
514 "Expected: (a value less than <10> and a value greater than <0>) " 514 "Expected: (a value less than <10> and a value greater than <0>) "
515 "but: a value greater than <0> was <-1>"); 515 "but: a value greater than <0> was <-1>.");
516 }); 516 });
517 }); 517 });
518 518
519 group('Predicate Matchers', () { 519 group('Predicate Matchers', () {
520 test('isInstanceOf', () { 520 test('isInstanceOf', () {
521 shouldFail(0, predicate((x) => x is String, "an instance of String"), 521 shouldFail(0, predicate((x) => x is String, "an instance of String"),
522 "Expected: an instance of String but: was <0>"); 522 "Expected: an instance of String but: was <0>.");
523 shouldPass('cow', predicate((x) => x is String, "an instance of String")); 523 shouldPass('cow', predicate((x) => x is String, "an instance of String"));
524 }); 524 });
525 }); 525 });
526 } 526 }
527 527
OLDNEW
« no previous file with comments | « tests/lib/unittest/instance_test.dart ('k') | tests/lib/unittest/unittest_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698