OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Test the basic StreamController and StreamController.singleSubscription. | 5 // Test the basic StreamController and StreamController.singleSubscription. |
6 library stream_controller_async_test; | 6 library stream_controller_async_test; |
7 | 7 |
8 import 'dart:async'; | 8 import 'dart:async'; |
9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
10 import '../../../pkg/unittest/lib/unittest.dart'; | 10 import '../../../pkg/unittest/lib/unittest.dart'; |
11 import 'event_helper.dart'; | 11 import 'event_helper.dart'; |
12 | 12 |
13 testController() { | 13 testController() { |
14 // Test reduce | 14 // Test reduce |
15 test("StreamController.reduce", () { | 15 test("StreamController.reduce", () { |
16 StreamController c = new StreamController.multiSubscription(); | 16 StreamController c = new StreamController.multiSubscription(); |
17 c.reduce(0, (a,b) => a + b) | 17 Stream stream = c.stream; |
| 18 stream.reduce(0, (a,b) => a + b) |
18 .then(expectAsync1((int v) { | 19 .then(expectAsync1((int v) { |
19 Expect.equals(42, v); | 20 Expect.equals(42, v); |
20 })); | 21 })); |
21 c.add(10); | 22 c.add(10); |
22 c.add(32); | 23 c.add(32); |
23 c.close(); | 24 c.close(); |
24 }); | 25 }); |
25 | 26 |
26 test("StreamController.reduce throws", () { | 27 test("StreamController.reduce throws", () { |
27 StreamController c = new StreamController.multiSubscription(); | 28 StreamController c = new StreamController.multiSubscription(); |
28 c.reduce(0, (a,b) { throw "Fnyf!"; }) | 29 Stream stream = c.stream; |
| 30 stream.reduce(0, (a,b) { throw "Fnyf!"; }) |
29 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); | 31 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); |
30 c.add(42); | 32 c.add(42); |
31 }); | 33 }); |
32 | 34 |
33 test("StreamController.pipeInto", () { | 35 test("StreamController.pipeInto", () { |
34 StreamController c = new StreamController.multiSubscription(); | 36 StreamController c = new StreamController.multiSubscription(); |
35 var list = <int>[]; | 37 var list = <int>[]; |
36 c.pipeInto(new CollectionSink<int>(list)) | 38 Stream stream = c.stream; |
| 39 stream.pipeInto(new CollectionSink<int>(list)) |
37 .whenComplete(expectAsync0(() { | 40 .whenComplete(expectAsync0(() { |
38 Expect.listEquals(<int>[1,2,9,3,9], list); | 41 Expect.listEquals(<int>[1,2,9,3,9], list); |
39 })); | 42 })); |
40 c.add(1); | 43 c.add(1); |
41 c.add(2); | 44 c.add(2); |
42 c.add(9); | 45 c.add(9); |
43 c.add(3); | 46 c.add(3); |
44 c.add(9); | 47 c.add(9); |
45 c.close(); | 48 c.close(); |
46 }); | 49 }); |
47 } | 50 } |
48 | 51 |
49 testSingleController() { | 52 testSingleController() { |
50 test("Single-subscription StreamController.reduce", () { | 53 test("Single-subscription StreamController.reduce", () { |
51 StreamController c = new StreamController(); | 54 StreamController c = new StreamController(); |
52 c.reduce(0, (a,b) => a + b) | 55 Stream stream = c.stream; |
| 56 stream.reduce(0, (a,b) => a + b) |
53 .then(expectAsync1((int v) { Expect.equals(42, v); })); | 57 .then(expectAsync1((int v) { Expect.equals(42, v); })); |
54 c.add(10); | 58 c.add(10); |
55 c.add(32); | 59 c.add(32); |
56 c.close(); | 60 c.close(); |
57 }); | 61 }); |
58 | 62 |
59 test("Single-subscription StreamController.reduce throws", () { | 63 test("Single-subscription StreamController.reduce throws", () { |
60 StreamController c = new StreamController(); | 64 StreamController c = new StreamController(); |
61 c.reduce(0, (a,b) { throw "Fnyf!"; }) | 65 Stream stream = c.stream; |
| 66 stream.reduce(0, (a,b) { throw "Fnyf!"; }) |
62 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); | 67 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); |
63 c.add(42); | 68 c.add(42); |
64 }); | 69 }); |
65 | 70 |
66 test("Single-subscription StreamController.pipeInto", () { | 71 test("Single-subscription StreamController.pipeInto", () { |
67 StreamController c = new StreamController(); | 72 StreamController c = new StreamController(); |
68 var list = <int>[]; | 73 var list = <int>[]; |
69 c.pipeInto(new CollectionSink<int>(list)) | 74 Stream stream = c.stream; |
| 75 stream.pipeInto(new CollectionSink<int>(list)) |
70 .whenComplete(expectAsync0(() { | 76 .whenComplete(expectAsync0(() { |
71 Expect.listEquals(<int>[1,2,9,3,9], list); | 77 Expect.listEquals(<int>[1,2,9,3,9], list); |
72 })); | 78 })); |
73 c.add(1); | 79 c.add(1); |
74 c.add(2); | 80 c.add(2); |
75 c.add(9); | 81 c.add(9); |
76 c.add(3); | 82 c.add(3); |
77 c.add(9); | 83 c.add(9); |
78 c.close(); | 84 c.close(); |
79 }); | 85 }); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 sink.add(5); // seen by stream 10 | 151 sink.add(5); // seen by stream 10 |
146 sink.close(); | 152 sink.close(); |
147 }); | 153 }); |
148 } | 154 } |
149 | 155 |
150 testExtraMethods() { | 156 testExtraMethods() { |
151 Events sentEvents = new Events()..add(7)..add(9)..add(13)..add(87)..close(); | 157 Events sentEvents = new Events()..add(7)..add(9)..add(13)..add(87)..close(); |
152 | 158 |
153 test("firstMatching", () { | 159 test("firstMatching", () { |
154 StreamController c = new StreamController(); | 160 StreamController c = new StreamController(); |
155 Future f = c.firstMatching((x) => (x % 3) == 0); | 161 Future f = c.stream.firstMatching((x) => (x % 3) == 0); |
156 f.then(expectAsync1((v) { Expect.equals(9, v); })); | 162 f.then(expectAsync1((v) { Expect.equals(9, v); })); |
157 sentEvents.replay(c); | 163 sentEvents.replay(c); |
158 }); | 164 }); |
159 | 165 |
160 test("firstMatching 2", () { | 166 test("firstMatching 2", () { |
161 StreamController c = new StreamController(); | 167 StreamController c = new StreamController(); |
162 Future f = c.firstMatching((x) => (x % 4) == 0); | 168 Future f = c.stream.firstMatching((x) => (x % 4) == 0); |
163 f.catchError(expectAsync1((e) {})); | 169 f.catchError(expectAsync1((e) {})); |
164 sentEvents.replay(c); | 170 sentEvents.replay(c); |
165 }); | 171 }); |
166 | 172 |
167 test("firstMatching 3", () { | 173 test("firstMatching 3", () { |
168 StreamController c = new StreamController(); | 174 StreamController c = new StreamController(); |
169 Future f = c.firstMatching((x) => (x % 4) == 0, defaultValue: () => 999); | 175 Future f = c.stream.firstMatching((x) => (x % 4) == 0, defaultValue: () => 9
99); |
170 f.then(expectAsync1((v) { Expect.equals(999, v); })); | 176 f.then(expectAsync1((v) { Expect.equals(999, v); })); |
171 sentEvents.replay(c); | 177 sentEvents.replay(c); |
172 }); | 178 }); |
173 | 179 |
174 | 180 |
175 test("lastMatching", () { | 181 test("lastMatching", () { |
176 StreamController c = new StreamController(); | 182 StreamController c = new StreamController(); |
177 Future f = c.lastMatching((x) => (x % 3) == 0); | 183 Future f = c.stream.lastMatching((x) => (x % 3) == 0); |
178 f.then(expectAsync1((v) { Expect.equals(87, v); })); | 184 f.then(expectAsync1((v) { Expect.equals(87, v); })); |
179 sentEvents.replay(c); | 185 sentEvents.replay(c); |
180 }); | 186 }); |
181 | 187 |
182 test("lastMatching 2", () { | 188 test("lastMatching 2", () { |
183 StreamController c = new StreamController(); | 189 StreamController c = new StreamController(); |
184 Future f = c.lastMatching((x) => (x % 4) == 0); | 190 Future f = c.stream.lastMatching((x) => (x % 4) == 0); |
185 f.catchError(expectAsync1((e) {})); | 191 f.catchError(expectAsync1((e) {})); |
186 sentEvents.replay(c); | 192 sentEvents.replay(c); |
187 }); | 193 }); |
188 | 194 |
189 test("lastMatching 3", () { | 195 test("lastMatching 3", () { |
190 StreamController c = new StreamController(); | 196 StreamController c = new StreamController(); |
191 Future f = c.lastMatching((x) => (x % 4) == 0, defaultValue: () => 999); | 197 Future f = c.stream.lastMatching((x) => (x % 4) == 0, defaultValue: () => 99
9); |
192 f.then(expectAsync1((v) { Expect.equals(999, v); })); | 198 f.then(expectAsync1((v) { Expect.equals(999, v); })); |
193 sentEvents.replay(c); | 199 sentEvents.replay(c); |
194 }); | 200 }); |
195 | 201 |
196 test("singleMatching", () { | 202 test("singleMatching", () { |
197 StreamController c = new StreamController(); | 203 StreamController c = new StreamController(); |
198 Future f = c.singleMatching((x) => (x % 9) == 0); | 204 Future f = c.stream.singleMatching((x) => (x % 9) == 0); |
199 f.then(expectAsync1((v) { Expect.equals(9, v); })); | 205 f.then(expectAsync1((v) { Expect.equals(9, v); })); |
200 sentEvents.replay(c); | 206 sentEvents.replay(c); |
201 }); | 207 }); |
202 | 208 |
203 test("singleMatching 2", () { | 209 test("singleMatching 2", () { |
204 StreamController c = new StreamController(); | 210 StreamController c = new StreamController(); |
205 Future f = c.singleMatching((x) => (x % 3) == 0); // Matches both 9 and 87.
. | 211 Future f = c.stream.singleMatching((x) => (x % 3) == 0); // Matches both 9
and 87.. |
206 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 212 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
207 sentEvents.replay(c); | 213 sentEvents.replay(c); |
208 }); | 214 }); |
209 | 215 |
210 test("first", () { | 216 test("first", () { |
211 StreamController c = new StreamController(); | 217 StreamController c = new StreamController(); |
212 Future f = c.first; | 218 Future f = c.stream.first; |
213 f.then(expectAsync1((v) { Expect.equals(7, v);})); | 219 f.then(expectAsync1((v) { Expect.equals(7, v);})); |
214 sentEvents.replay(c); | 220 sentEvents.replay(c); |
215 }); | 221 }); |
216 | 222 |
217 test("first empty", () { | 223 test("first empty", () { |
218 StreamController c = new StreamController(); | 224 StreamController c = new StreamController(); |
219 Future f = c.first; | 225 Future f = c.stream.first; |
220 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 226 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
221 Events emptyEvents = new Events()..close(); | 227 Events emptyEvents = new Events()..close(); |
222 emptyEvents.replay(c); | 228 emptyEvents.replay(c); |
223 }); | 229 }); |
224 | 230 |
225 test("first error", () { | 231 test("first error", () { |
226 StreamController c = new StreamController(); | 232 StreamController c = new StreamController(); |
227 Future f = c.first; | 233 Future f = c.stream.first; |
228 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 234 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
229 Events errorEvents = new Events()..error("error")..close(); | 235 Events errorEvents = new Events()..error("error")..close(); |
230 errorEvents.replay(c); | 236 errorEvents.replay(c); |
231 }); | 237 }); |
232 | 238 |
233 test("first error 2", () { | 239 test("first error 2", () { |
234 StreamController c = new StreamController(); | 240 StreamController c = new StreamController(); |
235 Future f = c.first; | 241 Future f = c.stream.first; |
236 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 242 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
237 Events errorEvents = new Events()..error("error")..error("error2")..close(); | 243 Events errorEvents = new Events()..error("error")..error("error2")..close(); |
238 errorEvents.replay(c); | 244 errorEvents.replay(c); |
239 }); | 245 }); |
240 | 246 |
241 test("last", () { | 247 test("last", () { |
242 StreamController c = new StreamController(); | 248 StreamController c = new StreamController(); |
243 Future f = c.last; | 249 Future f = c.stream.last; |
244 f.then(expectAsync1((v) { Expect.equals(87, v);})); | 250 f.then(expectAsync1((v) { Expect.equals(87, v);})); |
245 sentEvents.replay(c); | 251 sentEvents.replay(c); |
246 }); | 252 }); |
247 | 253 |
248 test("last empty", () { | 254 test("last empty", () { |
249 StreamController c = new StreamController(); | 255 StreamController c = new StreamController(); |
250 Future f = c.last; | 256 Future f = c.stream.last; |
251 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 257 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
252 Events emptyEvents = new Events()..close(); | 258 Events emptyEvents = new Events()..close(); |
253 emptyEvents.replay(c); | 259 emptyEvents.replay(c); |
254 }); | 260 }); |
255 | 261 |
256 test("last error", () { | 262 test("last error", () { |
257 StreamController c = new StreamController(); | 263 StreamController c = new StreamController(); |
258 Future f = c.last; | 264 Future f = c.stream.last; |
259 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 265 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
260 Events errorEvents = new Events()..error("error")..close(); | 266 Events errorEvents = new Events()..error("error")..close(); |
261 errorEvents.replay(c); | 267 errorEvents.replay(c); |
262 }); | 268 }); |
263 | 269 |
264 test("last error 2", () { | 270 test("last error 2", () { |
265 StreamController c = new StreamController(); | 271 StreamController c = new StreamController(); |
266 Future f = c.last; | 272 Future f = c.stream.last; |
267 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 273 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
268 Events errorEvents = new Events()..error("error")..error("error2")..close(); | 274 Events errorEvents = new Events()..error("error")..error("error2")..close(); |
269 errorEvents.replay(c); | 275 errorEvents.replay(c); |
270 }); | 276 }); |
271 | 277 |
272 test("elementAt", () { | 278 test("elementAt", () { |
273 StreamController c = new StreamController(); | 279 StreamController c = new StreamController(); |
274 Future f = c.elementAt(2); | 280 Future f = c.stream.elementAt(2); |
275 f.then(expectAsync1((v) { Expect.equals(13, v);})); | 281 f.then(expectAsync1((v) { Expect.equals(13, v);})); |
276 sentEvents.replay(c); | 282 sentEvents.replay(c); |
277 }); | 283 }); |
278 | 284 |
279 test("elementAt 2", () { | 285 test("elementAt 2", () { |
280 StreamController c = new StreamController(); | 286 StreamController c = new StreamController(); |
281 Future f = c.elementAt(20); | 287 Future f = c.stream.elementAt(20); |
282 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 288 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
283 sentEvents.replay(c); | 289 sentEvents.replay(c); |
284 }); | 290 }); |
285 } | 291 } |
286 | 292 |
287 testPause() { | 293 testPause() { |
288 test("pause event-unpause", () { | 294 test("pause event-unpause", () { |
289 StreamController c = new StreamController(); | 295 StreamController c = new StreamController(); |
290 Events actualEvents = new Events.capture(c); | 296 Events actualEvents = new Events.capture(c.stream); |
291 Events expectedEvents = new Events(); | 297 Events expectedEvents = new Events(); |
292 expectedEvents.add(42); | 298 expectedEvents.add(42); |
293 c.add(42); | 299 c.add(42); |
294 Expect.listEquals(expectedEvents.events, actualEvents.events); | 300 Expect.listEquals(expectedEvents.events, actualEvents.events); |
295 Completer completer = new Completer(); | 301 Completer completer = new Completer(); |
296 actualEvents.pause(completer.future); | 302 actualEvents.pause(completer.future); |
297 c..add(43)..add(44)..close(); | 303 c..add(43)..add(44)..close(); |
298 Expect.listEquals(expectedEvents.events, actualEvents.events); | 304 Expect.listEquals(expectedEvents.events, actualEvents.events); |
299 completer.complete(); | 305 completer.complete(); |
300 expectedEvents..add(43)..add(44)..close(); | 306 expectedEvents..add(43)..add(44)..close(); |
301 actualEvents.onDone(expectAsync0(() { | 307 actualEvents.onDone(expectAsync0(() { |
302 Expect.listEquals(expectedEvents.events, actualEvents.events); | 308 Expect.listEquals(expectedEvents.events, actualEvents.events); |
303 })); | 309 })); |
304 }); | 310 }); |
305 | 311 |
306 test("pause twice event-unpause", () { | 312 test("pause twice event-unpause", () { |
307 StreamController c = new StreamController(); | 313 StreamController c = new StreamController(); |
308 Events actualEvents = new Events.capture(c); | 314 Events actualEvents = new Events.capture(c.stream); |
309 Events expectedEvents = new Events(); | 315 Events expectedEvents = new Events(); |
310 expectedEvents.add(42); | 316 expectedEvents.add(42); |
311 c.add(42); | 317 c.add(42); |
312 Expect.listEquals(expectedEvents.events, actualEvents.events); | 318 Expect.listEquals(expectedEvents.events, actualEvents.events); |
313 Completer completer = new Completer(); | 319 Completer completer = new Completer(); |
314 Completer completer2 = new Completer(); | 320 Completer completer2 = new Completer(); |
315 actualEvents.pause(completer.future); | 321 actualEvents.pause(completer.future); |
316 actualEvents.pause(completer2.future); | 322 actualEvents.pause(completer2.future); |
317 c..add(43)..add(44)..close(); | 323 c..add(43)..add(44)..close(); |
318 Expect.listEquals(expectedEvents.events, actualEvents.events); | 324 Expect.listEquals(expectedEvents.events, actualEvents.events); |
319 completer.complete(); | 325 completer.complete(); |
320 Expect.listEquals(expectedEvents.events, actualEvents.events); | 326 Expect.listEquals(expectedEvents.events, actualEvents.events); |
321 completer2.complete(); | 327 completer2.complete(); |
322 expectedEvents..add(43)..add(44)..close(); | 328 expectedEvents..add(43)..add(44)..close(); |
323 actualEvents.onDone(expectAsync0((){ | 329 actualEvents.onDone(expectAsync0((){ |
324 Expect.listEquals(expectedEvents.events, actualEvents.events); | 330 Expect.listEquals(expectedEvents.events, actualEvents.events); |
325 })); | 331 })); |
326 }); | 332 }); |
327 | 333 |
328 test("pause twice direct-unpause", () { | 334 test("pause twice direct-unpause", () { |
329 StreamController c = new StreamController(); | 335 StreamController c = new StreamController(); |
330 Events actualEvents = new Events.capture(c); | 336 Events actualEvents = new Events.capture(c.stream); |
331 Events expectedEvents = new Events(); | 337 Events expectedEvents = new Events(); |
332 expectedEvents.add(42); | 338 expectedEvents.add(42); |
333 c.add(42); | 339 c.add(42); |
334 Expect.listEquals(expectedEvents.events, actualEvents.events); | 340 Expect.listEquals(expectedEvents.events, actualEvents.events); |
335 actualEvents.pause(); | 341 actualEvents.pause(); |
336 actualEvents.pause(); | 342 actualEvents.pause(); |
337 c.add(43); | 343 c.add(43); |
338 c.add(44); | 344 c.add(44); |
339 c.close(); | 345 c.close(); |
340 Expect.listEquals(expectedEvents.events, actualEvents.events); | 346 Expect.listEquals(expectedEvents.events, actualEvents.events); |
341 actualEvents.resume(); | 347 actualEvents.resume(); |
342 Expect.listEquals(expectedEvents.events, actualEvents.events); | 348 Expect.listEquals(expectedEvents.events, actualEvents.events); |
343 expectedEvents..add(43)..add(44)..close(); | 349 expectedEvents..add(43)..add(44)..close(); |
344 actualEvents.onDone(expectAsync0(() { | 350 actualEvents.onDone(expectAsync0(() { |
345 Expect.listEquals(expectedEvents.events, actualEvents.events); | 351 Expect.listEquals(expectedEvents.events, actualEvents.events); |
346 })); | 352 })); |
347 actualEvents.resume(); | 353 actualEvents.resume(); |
348 }); | 354 }); |
349 | 355 |
350 test("pause twice direct-event-unpause", () { | 356 test("pause twice direct-event-unpause", () { |
351 StreamController c = new StreamController(); | 357 StreamController c = new StreamController(); |
352 Events actualEvents = new Events.capture(c); | 358 Events actualEvents = new Events.capture(c.stream); |
353 Events expectedEvents = new Events(); | 359 Events expectedEvents = new Events(); |
354 expectedEvents.add(42); | 360 expectedEvents.add(42); |
355 c.add(42); | 361 c.add(42); |
356 Expect.listEquals(expectedEvents.events, actualEvents.events); | 362 Expect.listEquals(expectedEvents.events, actualEvents.events); |
357 Completer completer = new Completer(); | 363 Completer completer = new Completer(); |
358 actualEvents.pause(completer.future); | 364 actualEvents.pause(completer.future); |
359 actualEvents.pause(); | 365 actualEvents.pause(); |
360 c.add(43); | 366 c.add(43); |
361 c.add(44); | 367 c.add(44); |
362 c.close(); | 368 c.close(); |
363 Expect.listEquals(expectedEvents.events, actualEvents.events); | 369 Expect.listEquals(expectedEvents.events, actualEvents.events); |
364 actualEvents.resume(); | 370 actualEvents.resume(); |
365 Expect.listEquals(expectedEvents.events, actualEvents.events); | 371 Expect.listEquals(expectedEvents.events, actualEvents.events); |
366 expectedEvents..add(43)..add(44)..close(); | 372 expectedEvents..add(43)..add(44)..close(); |
367 actualEvents.onDone(expectAsync0(() { | 373 actualEvents.onDone(expectAsync0(() { |
368 Expect.listEquals(expectedEvents.events, actualEvents.events); | 374 Expect.listEquals(expectedEvents.events, actualEvents.events); |
369 })); | 375 })); |
370 completer.complete(); | 376 completer.complete(); |
371 }); | 377 }); |
372 | 378 |
373 test("pause twice direct-unpause", () { | 379 test("pause twice direct-unpause", () { |
374 StreamController c = new StreamController(); | 380 StreamController c = new StreamController(); |
375 Events actualEvents = new Events.capture(c); | 381 Events actualEvents = new Events.capture(c.stream); |
376 Events expectedEvents = new Events(); | 382 Events expectedEvents = new Events(); |
377 expectedEvents.add(42); | 383 expectedEvents.add(42); |
378 c.add(42); | 384 c.add(42); |
379 Expect.listEquals(expectedEvents.events, actualEvents.events); | 385 Expect.listEquals(expectedEvents.events, actualEvents.events); |
380 Completer completer = new Completer(); | 386 Completer completer = new Completer(); |
381 actualEvents.pause(completer.future); | 387 actualEvents.pause(completer.future); |
382 actualEvents.pause(); | 388 actualEvents.pause(); |
383 c.add(43); | 389 c.add(43); |
384 c.add(44); | 390 c.add(44); |
385 c.close(); | 391 c.close(); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 testFuture("reduce", (s, act) => s.reduce(0, (a,b) => act(b))); | 451 testFuture("reduce", (s, act) => s.reduce(0, (a,b) => act(b))); |
446 } | 452 } |
447 | 453 |
448 main() { | 454 main() { |
449 testController(); | 455 testController(); |
450 testSingleController(); | 456 testSingleController(); |
451 testExtraMethods(); | 457 testExtraMethods(); |
452 testPause(); | 458 testPause(); |
453 testRethrow(); | 459 testRethrow(); |
454 } | 460 } |
OLD | NEW |