| 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 filevents. | 3 // BSD-style license that can be found in the LICENSE filevents. |
| 4 | 4 |
| 5 import "dart:async"; | 5 import "dart:async"; |
| 6 | 6 |
| 7 import "package:async/async.dart" show StreamQueue; | 7 import "package:async/async.dart" show StreamQueue; |
| 8 import "package:test/test.dart"; | 8 import "package:test/test.dart"; |
| 9 | 9 |
| 10 import "utils.dart"; | 10 import "utils.dart"; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 next = events.next; | 30 next = events.next; |
| 31 expect(controller.hasListener, isTrue); | 31 expect(controller.hasListener, isTrue); |
| 32 expect(controller.isPaused, isFalse); | 32 expect(controller.isPaused, isFalse); |
| 33 | 33 |
| 34 controller.add(2); | 34 controller.add(2); |
| 35 | 35 |
| 36 expect(await next, 2); | 36 expect(await next, 2); |
| 37 expect(controller.hasListener, isTrue); | 37 expect(controller.hasListener, isTrue); |
| 38 expect(controller.isPaused, isTrue); | 38 expect(controller.isPaused, isTrue); |
| 39 | 39 |
| 40 var cancel = events.cancel(); | 40 events.cancel(); |
| 41 expect(controller.hasListener, isFalse); | 41 expect(controller.hasListener, isFalse); |
| 42 }); | 42 }); |
| 43 }); | 43 }); |
| 44 | 44 |
| 45 group("next operation", () { | 45 group("next operation", () { |
| 46 test("simple sequence of requests", () async { | 46 test("simple sequence of requests", () async { |
| 47 var events = new StreamQueue<int>(createStream()); | 47 var events = new StreamQueue<int>(createStream()); |
| 48 for (int i = 1; i <= 4; i++) { | 48 for (int i = 1; i <= 4; i++) { |
| 49 expect(await events.next, i); | 49 expect(await events.next, i); |
| 50 } | 50 } |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 }); | 276 }); |
| 277 | 277 |
| 278 test("closes the events, prevents other operations", () async { | 278 test("closes the events, prevents other operations", () async { |
| 279 var events = new StreamQueue<int>(createStream()); | 279 var events = new StreamQueue<int>(createStream()); |
| 280 var stream = events.rest; | 280 var stream = events.rest; |
| 281 expect(() => events.next, throwsStateError); | 281 expect(() => events.next, throwsStateError); |
| 282 expect(() => events.skip(1), throwsStateError); | 282 expect(() => events.skip(1), throwsStateError); |
| 283 expect(() => events.take(1), throwsStateError); | 283 expect(() => events.take(1), throwsStateError); |
| 284 expect(() => events.rest, throwsStateError); | 284 expect(() => events.rest, throwsStateError); |
| 285 expect(() => events.cancel(), throwsStateError); | 285 expect(() => events.cancel(), throwsStateError); |
| 286 expect(stream.toList(), completion([1, 2, 3, 4])); |
| 286 }); | 287 }); |
| 287 | 288 |
| 288 test("forwards to underlying stream", () async { | 289 test("forwards to underlying stream", () async { |
| 289 var cancel = new Completer(); | 290 var cancel = new Completer(); |
| 290 var controller = new StreamController(onCancel: () => cancel.future); | 291 var controller = new StreamController(onCancel: () => cancel.future); |
| 291 var events = new StreamQueue<int>(controller.stream); | 292 var events = new StreamQueue<int>(controller.stream); |
| 292 expect(controller.hasListener, isFalse); | 293 expect(controller.hasListener, isFalse); |
| 293 var next = events.next; | 294 var next = events.next; |
| 294 expect(controller.hasListener, isTrue); | 295 expect(controller.hasListener, isTrue); |
| 295 expect(controller.isPaused, isFalse); | 296 expect(controller.isPaused, isFalse); |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 447 var events = new StreamQueue<int>(createStream()); | 448 var events = new StreamQueue<int>(createStream()); |
| 448 expect(await events.next, 1); | 449 expect(await events.next, 1); |
| 449 expect(await events.hasNext, true); | 450 expect(await events.hasNext, true); |
| 450 expect(await events.next, 2); | 451 expect(await events.next, 2); |
| 451 expect(await events.next, 3); | 452 expect(await events.next, 3); |
| 452 }); | 453 }); |
| 453 | 454 |
| 454 test("- next after true, enqueued", () async { | 455 test("- next after true, enqueued", () async { |
| 455 var events = new StreamQueue<int>(createStream()); | 456 var events = new StreamQueue<int>(createStream()); |
| 456 var responses = []; | 457 var responses = []; |
| 457 var first = events.next.then(responses.add); | 458 events.next.then(responses.add); |
| 458 var hasSecond = events.hasNext.then(responses.add); | 459 events.hasNext.then(responses.add); |
| 459 var second = events.next.then(responses.add); | 460 events.next.then(responses.add); |
| 460 do { | 461 do { |
| 461 await flushMicrotasks(); | 462 await flushMicrotasks(); |
| 462 } while (responses.length < 3); | 463 } while (responses.length < 3); |
| 463 expect(responses, [1, true, 2]); | 464 expect(responses, [1, true, 2]); |
| 464 }); | 465 }); |
| 465 | 466 |
| 466 test("- skip 0 after true", () async { | 467 test("- skip 0 after true", () async { |
| 467 var events = new StreamQueue<int>(createStream()); | 468 var events = new StreamQueue<int>(createStream()); |
| 468 expect(await events.next, 1); | 469 expect(await events.next, 1); |
| 469 expect(await events.hasNext, true); | 470 expect(await events.hasNext, true); |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 622 controller.add(4); | 623 controller.add(4); |
| 623 await flushMicrotasks(); | 624 await flushMicrotasks(); |
| 624 controller.close(); | 625 controller.close(); |
| 625 }(); | 626 }(); |
| 626 return controller.stream; | 627 return controller.stream; |
| 627 } | 628 } |
| 628 | 629 |
| 629 Stream<int> createLongStream(int eventCount) async* { | 630 Stream<int> createLongStream(int eventCount) async* { |
| 630 for (int i = 0; i < eventCount; i++) yield i; | 631 for (int i = 0; i < eventCount; i++) yield i; |
| 631 } | 632 } |
| OLD | NEW |