Chromium Code Reviews| Index: test/byte_collection_test.dart |
| diff --git a/test/byte_collection_test.dart b/test/byte_collection_test.dart |
| index 8068542702822310fed3beedafbb27e196328226..3d03925e2b93aa283e18e91c2135abd595b9d164 100644 |
| --- a/test/byte_collection_test.dart |
| +++ b/test/byte_collection_test.dart |
| @@ -6,7 +6,7 @@ import "dart:async"; |
| import "dart:typed_data"; |
| import "package:test/test.dart"; |
| -import "package:async/async.dart" show byteCollector, collectBytes, Result; |
| +import "package:async/async.dart" show collectBytes, collectBytesCancelable; |
|
nweiz
2017/01/27 21:56:00
I don't think it's worth maintaining a "show" list
Lasse Reichstein Nielsen
2017/01/30 15:06:33
Done.
nweiz
2017/01/31 22:23:09
I think you missed this one.
Lasse Reichstein Nielsen
2017/02/01 12:05:43
ACK. Fixing.
|
| void main() { |
| group("collectBytes", () { |
| @@ -36,4 +36,56 @@ void main() { |
| expect(result, throwsA("badness")); |
| }); |
| }); |
| + |
| + group("collectBytes", () { |
| + test("simple list and overflow", () { |
| + var result = collectBytesCancelable(new Stream.fromIterable([ |
| + [0], |
| + [1], |
| + [2], |
| + [256] |
| + ])); |
| + expect(result.value, completion([0, 1, 2, 0])); |
| + }); |
| + |
| + test("no events", () { |
| + var result = collectBytesCancelable(new Stream.fromIterable([])); |
| + expect(result.value, completion([])); |
| + }); |
| + |
| + test("empty events", () { |
| + var result = collectBytesCancelable(new Stream.fromIterable([[], []])); |
| + expect(result.value, completion([])); |
| + }); |
| + |
| + test("error event", () { |
| + var result = collectBytesCancelable(new Stream.fromIterable( |
| + new Iterable.generate(3, (n) => n == 2 ? throw "badness" : [n]))); |
| + expect(result.value, throwsA("badness")); |
| + }); |
| + |
| + test("cancelled", () async { |
| + var sc = new StreamController<List<int>>(); |
| + var result = collectBytesCancelable(sc.stream); |
| + // Value never completes. |
| + result.value.whenComplete(expectAsync0((){}, count: 0)); |
| + |
| + expect(sc.hasListener, isTrue); |
| + sc.add([1, 2]); |
| + await nextTimerTick(); |
| + expect(sc.hasListener, isTrue); |
| + sc.add([3, 4]); |
| + await nextTimerTick(); |
| + expect(sc.hasListener, isTrue); |
| + result.cancel(); |
| + expect(sc.hasListener, isFalse); // Cancelled immediately. |
| + var replacement = await result.valueOrCancellation(); |
| + expect(replacement, isNull); |
| + await nextTimerTick(); |
| + sc.close(); |
| + await nextTimerTick(); |
| + }); |
| + }); |
| } |
| + |
| +Future nextTimerTick() => new Future((){}); |