| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 import "dart:async"; | 5 import "dart:async"; |
| 6 | 6 |
| 7 import "package:async/async.dart" show StreamCompleter; | 7 import "package:async/async.dart" show StreamCompleter; |
| 8 import "package:test/test.dart"; | 8 import "package:test/test.dart"; |
| 9 | 9 |
| 10 import "utils.dart"; | 10 import "utils.dart"; |
| (...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 expect(controller.hasListener, isFalse); | 330 expect(controller.hasListener, isFalse); |
| 331 completer.setSourceStream(controller.stream); | 331 completer.setSourceStream(controller.stream); |
| 332 await flushMicrotasks(); | 332 await flushMicrotasks(); |
| 333 expect(controller.hasListener, isTrue); | 333 expect(controller.hasListener, isTrue); |
| 334 controller.addError(42); | 334 controller.addError(42); |
| 335 await done.then(unreachable("data"), onError: (error) { | 335 await done.then(unreachable("data"), onError: (error) { |
| 336 expect(error, 42); | 336 expect(error, 42); |
| 337 }); | 337 }); |
| 338 expect(controller.hasListener, isFalse); | 338 expect(controller.hasListener, isFalse); |
| 339 }); | 339 }); |
| 340 |
| 341 group("setError()", () { |
| 342 test("produces a stream that emits a single error", () { |
| 343 var completer = new StreamCompleter(); |
| 344 completer.stream.listen( |
| 345 unreachable("data"), |
| 346 onError: expectAsync((error, stackTrace) { |
| 347 expect(error, equals("oh no")); |
| 348 }), |
| 349 onDone: expectAsync(() {})); |
| 350 |
| 351 completer.setError("oh no"); |
| 352 }); |
| 353 |
| 354 test("produces a stream that emits a single error on a later listen", |
| 355 () async { |
| 356 var completer = new StreamCompleter(); |
| 357 completer.setError("oh no"); |
| 358 await flushMicrotasks(); |
| 359 |
| 360 completer.stream.listen( |
| 361 unreachable("data"), |
| 362 onError: expectAsync((error, stackTrace) { |
| 363 expect(error, equals("oh no")); |
| 364 }), |
| 365 onDone: expectAsync(() {})); |
| 366 }); |
| 367 }); |
| 340 } | 368 } |
| 341 | 369 |
| 342 Stream<int> createStream() async* { | 370 Stream<int> createStream() async* { |
| 343 yield 1; | 371 yield 1; |
| 344 await flushMicrotasks(); | 372 await flushMicrotasks(); |
| 345 yield 2; | 373 yield 2; |
| 346 await flushMicrotasks(); | 374 await flushMicrotasks(); |
| 347 yield 3; | 375 yield 3; |
| 348 await flushMicrotasks(); | 376 await flushMicrotasks(); |
| 349 yield 4; | 377 yield 4; |
| 350 } | 378 } |
| OLD | NEW |