| Index: packages/async/test/stream_zip_test.dart
|
| diff --git a/packages/async/test/stream_zip_test.dart b/packages/async/test/stream_zip_test.dart
|
| index 35ace7d12815529052e394d699aa7c3a3117407a..71d8eeefffabe19379572b0a7de2cbcb46a38712 100644
|
| --- a/packages/async/test/stream_zip_test.dart
|
| +++ b/packages/async/test/stream_zip_test.dart
|
| @@ -3,7 +3,8 @@
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| import "dart:async";
|
| -import "package:async/stream_zip.dart";
|
| +
|
| +import "package:async/async.dart";
|
| import "package:test/test.dart";
|
|
|
| /// Create an error with the same values as [base], except that it throwsA
|
| @@ -35,49 +36,96 @@ int ctr = 0;
|
|
|
| main() {
|
| // Test that zipping [streams] gives the results iterated by [expectedData].
|
| - testZip(Iterable streams, Iterable expectedData) {
|
| + testZip(Iterable<Stream> streams, Iterable expectedData) {
|
| List data = [];
|
| Stream zip = new StreamZip(streams);
|
| - zip.listen(data.add, onDone: expectAsync(() {
|
| + zip.listen(data.add, onDone: expectAsync0(() {
|
| expect(data, equals(expectedData));
|
| }));
|
| }
|
|
|
| test("Basic", () {
|
| - testZip([mks([1, 2, 3]), mks([4, 5, 6]), mks([7, 8, 9])],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3]),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9])
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Uneven length 1", () {
|
| - testZip([mks([1, 2, 3, 99, 100]), mks([4, 5, 6]), mks([7, 8, 9])],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3, 99, 100]),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9])
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Uneven length 2", () {
|
| - testZip([mks([1, 2, 3]), mks([4, 5, 6, 99, 100]), mks([7, 8, 9])],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3]),
|
| + mks([4, 5, 6, 99, 100]),
|
| + mks([7, 8, 9])
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Uneven length 3", () {
|
| - testZip([mks([1, 2, 3]), mks([4, 5, 6]), mks([7, 8, 9, 99, 100])],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3]),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9, 99, 100])
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Uneven length 4", () {
|
| - testZip([mks([1, 2, 3, 98]), mks([4, 5, 6]), mks([7, 8, 9, 99, 100])],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3, 98]),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9, 99, 100])
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Empty 1", () {
|
| - testZip([mks([]), mks([4, 5, 6]), mks([7, 8, 9])], []);
|
| + testZip([
|
| + mks([]),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9])
|
| + ], []);
|
| });
|
|
|
| test("Empty 2", () {
|
| - testZip([mks([1, 2, 3]), mks([]), mks([7, 8, 9])], []);
|
| + testZip([
|
| + mks([1, 2, 3]),
|
| + mks([]),
|
| + mks([7, 8, 9])
|
| + ], []);
|
| });
|
|
|
| test("Empty 3", () {
|
| - testZip([mks([1, 2, 3]), mks([4, 5, 6]), mks([])], []);
|
| + testZip([
|
| + mks([1, 2, 3]),
|
| + mks([4, 5, 6]),
|
| + mks([])
|
| + ], []);
|
| });
|
|
|
| test("Empty source", () {
|
| @@ -85,57 +133,88 @@ main() {
|
| });
|
|
|
| test("Single Source", () {
|
| - testZip([mks([1, 2, 3])], [[1], [2], [3]]);
|
| + testZip([
|
| + mks([1, 2, 3])
|
| + ], [
|
| + [1],
|
| + [2],
|
| + [3]
|
| + ]);
|
| });
|
|
|
| test("Other-streams", () {
|
| Stream st1 = mks([1, 2, 3, 4, 5, 6]).where((x) => x < 4);
|
| - Stream st2 = new Stream.periodic(const Duration(milliseconds: 5),
|
| - (x) => x + 4).take(3);
|
| + Stream st2 =
|
| + new Stream.periodic(const Duration(milliseconds: 5), (x) => x + 4)
|
| + .take(3);
|
| StreamController c = new StreamController.broadcast();
|
| Stream st3 = c.stream;
|
| - testZip([st1, st2, st3],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| - c..add(7)..add(8)..add(9)..close();
|
| + testZip([
|
| + st1,
|
| + st2,
|
| + st3
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| + c
|
| + ..add(7)
|
| + ..add(8)
|
| + ..add(9)
|
| + ..close();
|
| });
|
|
|
| test("Error 1", () {
|
| - expect(new StreamZip([streamError(mks([1, 2, 3]), 2, "BAD-1"),
|
| - mks([4, 5, 6]),
|
| - mks([7, 8, 9])]).toList(),
|
| - throwsA(equals("BAD-1")));
|
| + expect(
|
| + new StreamZip([
|
| + streamError(mks([1, 2, 3]), 2, "BAD-1"),
|
| + mks([4, 5, 6]),
|
| + mks([7, 8, 9])
|
| + ]).toList(),
|
| + throwsA(equals("BAD-1")));
|
| });
|
|
|
| test("Error 2", () {
|
| - expect(new StreamZip([mks([1, 2, 3]),
|
| - streamError(mks([4, 5, 6]), 5, "BAD-2"),
|
| - mks([7, 8, 9])]).toList(),
|
| - throwsA(equals("BAD-2")));
|
| + expect(
|
| + new StreamZip([
|
| + mks([1, 2, 3]),
|
| + streamError(mks([4, 5, 6]), 5, "BAD-2"),
|
| + mks([7, 8, 9])
|
| + ]).toList(),
|
| + throwsA(equals("BAD-2")));
|
| });
|
|
|
| test("Error 3", () {
|
| - expect(new StreamZip([mks([1, 2, 3]),
|
| - mks([4, 5, 6]),
|
| - streamError(mks([7, 8, 9]), 8, "BAD-3")]).toList(),
|
| - throwsA(equals("BAD-3")));
|
| + expect(
|
| + new StreamZip([
|
| + mks([1, 2, 3]),
|
| + mks([4, 5, 6]),
|
| + streamError(mks([7, 8, 9]), 8, "BAD-3")
|
| + ]).toList(),
|
| + throwsA(equals("BAD-3")));
|
| });
|
|
|
| test("Error at end", () {
|
| - expect(new StreamZip([mks([1, 2, 3]),
|
| - streamError(mks([4, 5, 6]), 6, "BAD-4"),
|
| - mks([7, 8, 9])]).toList(),
|
| - throwsA(equals("BAD-4")));
|
| + expect(
|
| + new StreamZip([
|
| + mks([1, 2, 3]),
|
| + streamError(mks([4, 5, 6]), 6, "BAD-4"),
|
| + mks([7, 8, 9])
|
| + ]).toList(),
|
| + throwsA(equals("BAD-4")));
|
| });
|
|
|
| test("Error before first end", () {
|
| // StreamControllers' streams with no "close" called will never be done,
|
| // so the fourth event of the first stream is guaranteed to come first.
|
| - expect(new StreamZip(
|
| - [streamError(mks([1, 2, 3, 4]), 4, "BAD-5"),
|
| - (new StreamController()..add(4)..add(5)..add(6)).stream,
|
| - (new StreamController()..add(7)..add(8)..add(9)).stream]
|
| - ).toList(),
|
| - throwsA(equals("BAD-5")));
|
| + expect(
|
| + new StreamZip([
|
| + streamError(mks([1, 2, 3, 4]), 4, "BAD-5"),
|
| + (new StreamController()..add(4)..add(5)..add(6)).stream,
|
| + (new StreamController()..add(7)..add(8)..add(9)).stream
|
| + ]).toList(),
|
| + throwsA(equals("BAD-5")));
|
| });
|
|
|
| test("Error after first end", () {
|
| @@ -143,40 +222,43 @@ main() {
|
| controller..add(7)..add(8)..add(9);
|
| // Transformer that puts error into controller when one of the first two
|
| // streams have sent a done event.
|
| - StreamTransformer trans = new StreamTransformer.fromHandlers(
|
| - handleDone: (EventSink s) {
|
| - Timer.run(() { controller.addError("BAD-6"); });
|
| + StreamTransformer trans =
|
| + new StreamTransformer.fromHandlers(handleDone: (EventSink s) {
|
| + Timer.run(() {
|
| + controller.addError("BAD-6");
|
| + });
|
| s.close();
|
| });
|
| - testZip([mks([1, 2, 3]).transform(trans),
|
| - mks([4, 5, 6]).transform(trans),
|
| - controller.stream],
|
| - [[1, 4, 7], [2, 5, 8], [3, 6, 9]]);
|
| + testZip([
|
| + mks([1, 2, 3]).transform(trans),
|
| + mks([4, 5, 6]).transform(trans),
|
| + controller.stream
|
| + ], [
|
| + [1, 4, 7],
|
| + [2, 5, 8],
|
| + [3, 6, 9]
|
| + ]);
|
| });
|
|
|
| test("Pause/Resume", () {
|
| int sc1p = 0;
|
| - StreamController c1 = new StreamController(
|
| - onPause: () {
|
| - sc1p++;
|
| - },
|
| - onResume: () {
|
| - sc1p--;
|
| - });
|
| + StreamController c1 = new StreamController(onPause: () {
|
| + sc1p++;
|
| + }, onResume: () {
|
| + sc1p--;
|
| + });
|
|
|
| int sc2p = 0;
|
| - StreamController c2 = new StreamController(
|
| - onPause: () {
|
| - sc2p++;
|
| - },
|
| - onResume: () {
|
| - sc2p--;
|
| - });
|
| + StreamController c2 = new StreamController(onPause: () {
|
| + sc2p++;
|
| + }, onResume: () {
|
| + sc2p--;
|
| + });
|
|
|
| - var done = expectAsync((){
|
| + var done = expectAsync0(() {
|
| expect(sc1p, equals(1));
|
| expect(sc2p, equals(0));
|
| - }); // Call to complete test.
|
| + }); // Call to complete test.
|
|
|
| Stream zip = new StreamZip([c1.stream, c2.stream]);
|
|
|
| @@ -197,7 +279,9 @@ main() {
|
| }).then((hasMore) {
|
| expect(hasMore, isTrue);
|
| expect(it.current, equals([5, 6]));
|
| - new Future.delayed(ms25).then((_) { c2.add(8); });
|
| + new Future.delayed(ms25).then((_) {
|
| + c2.add(8);
|
| + });
|
| return it.moveNext();
|
| }).then((hasMore) {
|
| expect(hasMore, isTrue);
|
| @@ -209,7 +293,12 @@ main() {
|
| done();
|
| });
|
|
|
| - c1..add(1)..add(3)..add(5)..add(7)..close();
|
| + c1
|
| + ..add(1)
|
| + ..add(3)
|
| + ..add(5)
|
| + ..add(7)
|
| + ..close();
|
| c2..add(2)..add(4);
|
| });
|
|
|
| @@ -219,7 +308,7 @@ main() {
|
| var sz = new StreamZip([s1, s2]);
|
| int ctr = 0;
|
| var sub;
|
| - sub = sz.listen(expectAsync((v) {
|
| + sub = sz.listen(expectAsync1((v) {
|
| expect(v, equals([ctr * 2, ctr * 2 + 1]));
|
| if (ctr == 1) {
|
| sub.pause(new Future.delayed(const Duration(milliseconds: 25)));
|
|
|