Index: tests/lib_strong/async/stream_controller_async_test.dart |
diff --git a/tests/lib_strong/async/stream_controller_async_test.dart b/tests/lib_strong/async/stream_controller_async_test.dart |
index 3fed8a88cf890633e91db5a732220c8fadc21627..024389ec8b4c40d5ba574afb4bdbb5871364dd1e 100644 |
--- a/tests/lib_strong/async/stream_controller_async_test.dart |
+++ b/tests/lib_strong/async/stream_controller_async_test.dart |
@@ -11,16 +11,17 @@ import 'package:unittest/unittest.dart'; |
import 'event_helper.dart'; |
import 'stream_state_helper.dart'; |
-void cancelSub(StreamSubscription sub) { sub.cancel(); } |
+void cancelSub(StreamSubscription sub) { |
+ sub.cancel(); |
+} |
testController() { |
// Test fold |
test("StreamController.fold", () { |
StreamController c = new StreamController(); |
Stream stream = c.stream.asBroadcastStream(onCancel: cancelSub); |
- stream.fold(0, (a,b) => a + b) |
- .then(expectAsync((int v) { |
- Expect.equals(42, v); |
+ stream.fold(0, (a, b) => a + b).then(expectAsync((int v) { |
+ Expect.equals(42, v); |
})); |
c.add(10); |
c.add(32); |
@@ -30,8 +31,11 @@ testController() { |
test("StreamController.fold throws", () { |
StreamController c = new StreamController(); |
Stream stream = c.stream.asBroadcastStream(onCancel: cancelSub); |
- stream.fold(0, (a,b) { throw "Fnyf!"; }) |
- .catchError(expectAsync((error) { Expect.equals("Fnyf!", error); })); |
+ stream.fold(0, (a, b) { |
+ throw "Fnyf!"; |
+ }).catchError(expectAsync((error) { |
+ Expect.equals("Fnyf!", error); |
+ })); |
c.add(42); |
}); |
} |
@@ -40,8 +44,9 @@ testSingleController() { |
test("Single-subscription StreamController.fold", () { |
StreamController c = new StreamController(); |
Stream stream = c.stream; |
- stream.fold(0, (a,b) => a + b) |
- .then(expectAsync((int v) { Expect.equals(42, v); })); |
+ stream.fold(0, (a, b) => a + b).then(expectAsync((int v) { |
+ Expect.equals(42, v); |
+ })); |
c.add(10); |
c.add(32); |
c.close(); |
@@ -50,14 +55,17 @@ testSingleController() { |
test("Single-subscription StreamController.fold throws", () { |
StreamController c = new StreamController(); |
Stream stream = c.stream; |
- stream.fold(0, (a,b) { throw "Fnyf!"; }) |
- .catchError(expectAsync((e) { Expect.equals("Fnyf!", e); })); |
+ stream.fold(0, (a, b) { |
+ throw "Fnyf!"; |
+ }).catchError(expectAsync((e) { |
+ Expect.equals("Fnyf!", e); |
+ })); |
c.add(42); |
}); |
- test("Single-subscription StreamController events are buffered when" |
- " there is no subscriber", |
- () { |
+ test( |
+ "Single-subscription StreamController events are buffered when" |
+ " there is no subscriber", () { |
StreamController c = new StreamController(); |
EventSink sink = c.sink; |
Stream stream = c.stream; |
@@ -65,18 +73,21 @@ testSingleController() { |
sink.add(1); |
sink.add(2); |
sink.close(); |
- stream.listen( |
- (data) { |
- counter += data; |
- }, |
- onDone: expectAsync(() { |
- Expect.equals(3, counter); |
- })); |
+ stream.listen((data) { |
+ counter += data; |
+ }, onDone: expectAsync(() { |
+ Expect.equals(3, counter); |
+ })); |
}); |
} |
testExtraMethods() { |
- Events sentEvents = new Events()..add(7)..add(9)..add(13)..add(87)..close(); |
+ Events sentEvents = new Events() |
+ ..add(7) |
+ ..add(9) |
+ ..add(13) |
+ ..add(87) |
+ ..close(); |
test("forEach", () { |
StreamController c = new StreamController(); |
@@ -90,7 +101,11 @@ testExtraMethods() { |
}); |
test("forEachError", () { |
- Events sentEvents = new Events()..add(7)..error("bad")..add(87)..close(); |
+ Events sentEvents = new Events() |
+ ..add(7) |
+ ..error("bad") |
+ ..add(87) |
+ ..close(); |
StreamController c = new StreamController(); |
Events actualEvents = new Events(); |
Future f = c.stream.forEach(actualEvents.add); |
@@ -102,7 +117,11 @@ testExtraMethods() { |
}); |
test("forEachError2", () { |
- Events sentEvents = new Events()..add(7)..add(9)..add(87)..close(); |
+ Events sentEvents = new Events() |
+ ..add(7) |
+ ..add(9) |
+ ..add(87) |
+ ..close(); |
StreamController c = new StreamController(); |
Events actualEvents = new Events(); |
Future f = c.stream.forEach((x) { |
@@ -119,7 +138,9 @@ testExtraMethods() { |
test("firstWhere", () { |
StreamController c = new StreamController(); |
Future f = c.stream.firstWhere((x) => (x % 3) == 0); |
- f.then(expectAsync((v) { Expect.equals(9, v); })); |
+ f.then(expectAsync((v) { |
+ Expect.equals(9, v); |
+ })); |
sentEvents.replay(c); |
}); |
@@ -132,16 +153,20 @@ testExtraMethods() { |
test("firstWhere 3", () { |
StreamController c = new StreamController(); |
- Future f = c.stream.firstWhere((x) => (x % 4) == 0, defaultValue: () => 999); |
- f.then(expectAsync((v) { Expect.equals(999, v); })); |
+ Future f = |
+ c.stream.firstWhere((x) => (x % 4) == 0, defaultValue: () => 999); |
+ f.then(expectAsync((v) { |
+ Expect.equals(999, v); |
+ })); |
sentEvents.replay(c); |
}); |
- |
test("lastWhere", () { |
StreamController c = new StreamController(); |
Future f = c.stream.lastWhere((x) => (x % 3) == 0); |
- f.then(expectAsync((v) { Expect.equals(87, v); })); |
+ f.then(expectAsync((v) { |
+ Expect.equals(87, v); |
+ })); |
sentEvents.replay(c); |
}); |
@@ -155,35 +180,45 @@ testExtraMethods() { |
test("lastWhere 3", () { |
StreamController c = new StreamController(); |
Future f = c.stream.lastWhere((x) => (x % 4) == 0, defaultValue: () => 999); |
- f.then(expectAsync((v) { Expect.equals(999, v); })); |
+ f.then(expectAsync((v) { |
+ Expect.equals(999, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("singleWhere", () { |
StreamController c = new StreamController(); |
Future f = c.stream.singleWhere((x) => (x % 9) == 0); |
- f.then(expectAsync((v) { Expect.equals(9, v); })); |
+ f.then(expectAsync((v) { |
+ Expect.equals(9, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("singleWhere 2", () { |
StreamController c = new StreamController(); |
- Future f = c.stream.singleWhere((x) => (x % 3) == 0); // Matches 9 and 87.. |
- f.catchError(expectAsync((error) { Expect.isTrue(error is StateError); })); |
+ Future f = c.stream.singleWhere((x) => (x % 3) == 0); // Matches 9 and 87.. |
+ f.catchError(expectAsync((error) { |
+ Expect.isTrue(error is StateError); |
+ })); |
sentEvents.replay(c); |
}); |
test("first", () { |
StreamController c = new StreamController(); |
Future f = c.stream.first; |
- f.then(expectAsync((v) { Expect.equals(7, v);})); |
+ f.then(expectAsync((v) { |
+ Expect.equals(7, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("first empty", () { |
StreamController c = new StreamController(); |
Future f = c.stream.first; |
- f.catchError(expectAsync((error) { Expect.isTrue(error is StateError); })); |
+ f.catchError(expectAsync((error) { |
+ Expect.isTrue(error is StateError); |
+ })); |
Events emptyEvents = new Events()..close(); |
emptyEvents.replay(c); |
}); |
@@ -191,30 +226,43 @@ testExtraMethods() { |
test("first error", () { |
StreamController c = new StreamController(); |
Future f = c.stream.first; |
- f.catchError(expectAsync((error) { Expect.equals("error", error); })); |
- Events errorEvents = new Events()..error("error")..close(); |
+ f.catchError(expectAsync((error) { |
+ Expect.equals("error", error); |
+ })); |
+ Events errorEvents = new Events() |
+ ..error("error") |
+ ..close(); |
errorEvents.replay(c); |
}); |
test("first error 2", () { |
StreamController c = new StreamController(); |
Future f = c.stream.first; |
- f.catchError(expectAsync((error) { Expect.equals("error", error); })); |
- Events errorEvents = new Events()..error("error")..error("error2")..close(); |
+ f.catchError(expectAsync((error) { |
+ Expect.equals("error", error); |
+ })); |
+ Events errorEvents = new Events() |
+ ..error("error") |
+ ..error("error2") |
+ ..close(); |
errorEvents.replay(c); |
}); |
test("last", () { |
StreamController c = new StreamController(); |
Future f = c.stream.last; |
- f.then(expectAsync((v) { Expect.equals(87, v);})); |
+ f.then(expectAsync((v) { |
+ Expect.equals(87, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("last empty", () { |
StreamController c = new StreamController(); |
Future f = c.stream.last; |
- f.catchError(expectAsync((error) { Expect.isTrue(error is StateError); })); |
+ f.catchError(expectAsync((error) { |
+ Expect.isTrue(error is StateError); |
+ })); |
Events emptyEvents = new Events()..close(); |
emptyEvents.replay(c); |
}); |
@@ -222,64 +270,85 @@ testExtraMethods() { |
test("last error", () { |
StreamController c = new StreamController(); |
Future f = c.stream.last; |
- f.catchError(expectAsync((error) { Expect.equals("error", error); })); |
- Events errorEvents = new Events()..error("error")..close(); |
+ f.catchError(expectAsync((error) { |
+ Expect.equals("error", error); |
+ })); |
+ Events errorEvents = new Events() |
+ ..error("error") |
+ ..close(); |
errorEvents.replay(c); |
}); |
test("last error 2", () { |
StreamController c = new StreamController(); |
Future f = c.stream.last; |
- f.catchError(expectAsync((error) { Expect.equals("error", error); })); |
- Events errorEvents = new Events()..error("error")..error("error2")..close(); |
+ f.catchError(expectAsync((error) { |
+ Expect.equals("error", error); |
+ })); |
+ Events errorEvents = new Events() |
+ ..error("error") |
+ ..error("error2") |
+ ..close(); |
errorEvents.replay(c); |
}); |
test("elementAt", () { |
StreamController c = new StreamController(); |
Future f = c.stream.elementAt(2); |
- f.then(expectAsync((v) { Expect.equals(13, v);})); |
+ f.then(expectAsync((v) { |
+ Expect.equals(13, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("elementAt 2", () { |
StreamController c = new StreamController(); |
Future f = c.stream.elementAt(20); |
- f.catchError(expectAsync((error) { Expect.isTrue(error is RangeError); })); |
+ f.catchError(expectAsync((error) { |
+ Expect.isTrue(error is RangeError); |
+ })); |
sentEvents.replay(c); |
}); |
test("drain", () { |
StreamController c = new StreamController(); |
Future f = c.stream.drain(); |
- f.then(expectAsync((v) { Expect.equals(null, v);})); |
+ f.then(expectAsync((v) { |
+ Expect.equals(null, v); |
+ })); |
sentEvents.replay(c); |
}); |
test("drain error", () { |
StreamController c = new StreamController(); |
Future f = c.stream.drain(); |
- f.catchError(expectAsync((error) { Expect.equals("error", error); })); |
- Events errorEvents = new Events()..error("error")..error("error2")..close(); |
+ f.catchError(expectAsync((error) { |
+ Expect.equals("error", error); |
+ })); |
+ Events errorEvents = new Events() |
+ ..error("error") |
+ ..error("error2") |
+ ..close(); |
errorEvents.replay(c); |
}); |
- |
} |
testPause() { |
test("pause event-unpause", () { |
- |
StreamProtocolTest test = new StreamProtocolTest(); |
Completer completer = new Completer(); |
- test..expectListen() |
- ..expectData(42, () { test.pause(completer.future); }) |
- ..expectPause(() { |
- completer.complete(null); |
- }) |
- ..expectData(43) |
- ..expectData(44) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
+ test |
+ ..expectListen() |
+ ..expectData(42, () { |
+ test.pause(completer.future); |
+ }) |
+ ..expectPause(() { |
+ completer.complete(null); |
+ }) |
+ ..expectData(43) |
+ ..expectData(44) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
test.listen(); |
test.add(42); |
test.add(43); |
@@ -291,73 +360,81 @@ testPause() { |
StreamProtocolTest test = new StreamProtocolTest(); |
Completer completer = new Completer(); |
Completer completer2 = new Completer(); |
- test..expectListen() |
- ..expectData(42, () { |
- test.pause(completer.future); |
- test.pause(completer2.future); |
- }) |
- ..expectPause(() { |
- completer.future.then(completer2.complete); |
- completer.complete(null); |
- }) |
- ..expectData(43) |
- ..expectData(44) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
- test..listen() |
- ..add(42) |
- ..add(43) |
- ..add(44) |
- ..close(); |
+ test |
+ ..expectListen() |
+ ..expectData(42, () { |
+ test.pause(completer.future); |
+ test.pause(completer2.future); |
+ }) |
+ ..expectPause(() { |
+ completer.future.then(completer2.complete); |
+ completer.complete(null); |
+ }) |
+ ..expectData(43) |
+ ..expectData(44) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
+ test |
+ ..listen() |
+ ..add(42) |
+ ..add(43) |
+ ..add(44) |
+ ..close(); |
}); |
test("pause twice direct-unpause", () { |
StreamProtocolTest test = new StreamProtocolTest(); |
- test..expectListen() |
- ..expectData(42, () { |
- test.pause(); |
- test.pause(); |
- }) |
- ..expectPause(() { |
- test.resume(); |
- test.resume(); |
- }) |
- ..expectData(43) |
- ..expectData(44) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
- test..listen() |
- ..add(42) |
- ..add(43) |
- ..add(44) |
- ..close(); |
+ test |
+ ..expectListen() |
+ ..expectData(42, () { |
+ test.pause(); |
+ test.pause(); |
+ }) |
+ ..expectPause(() { |
+ test.resume(); |
+ test.resume(); |
+ }) |
+ ..expectData(43) |
+ ..expectData(44) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
+ test |
+ ..listen() |
+ ..add(42) |
+ ..add(43) |
+ ..add(44) |
+ ..close(); |
}); |
test("pause twice direct-event-unpause", () { |
StreamProtocolTest test = new StreamProtocolTest(); |
Completer completer = new Completer(); |
- test..expectListen() |
- ..expectData(42, () { |
- test.pause(); |
- test.pause(completer.future); |
- test.add(43); |
- test.add(44); |
- test.close(); |
- }) |
- ..expectPause(() { |
- completer.future.then((v) => test.resume()); |
- completer.complete(null); |
- }) |
- ..expectData(43) |
- ..expectData(44) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
- test..listen() |
- ..add(42); |
+ test |
+ ..expectListen() |
+ ..expectData(42, () { |
+ test.pause(); |
+ test.pause(completer.future); |
+ test.add(43); |
+ test.add(44); |
+ test.close(); |
+ }) |
+ ..expectPause(() { |
+ completer.future.then((v) => test.resume()); |
+ completer.complete(null); |
+ }) |
+ ..expectData(43) |
+ ..expectData(44) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
+ test |
+ ..listen() |
+ ..add(42); |
}); |
} |
-class TestError { const TestError(); } |
+class TestError { |
+ const TestError(); |
+} |
testRethrow() { |
TestError error = const TestError(); |
@@ -365,9 +442,14 @@ testRethrow() { |
testStream(name, streamValueTransform) { |
test("rethrow-$name-value", () { |
StreamController c = new StreamController(); |
- Stream s = streamValueTransform(c.stream, (v) { throw error; }); |
- s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync( |
- (e) { Expect.identical(error, e); })); |
+ Stream s = streamValueTransform(c.stream, (v) { |
+ throw error; |
+ }); |
+ s.listen((_) { |
+ Expect.fail("unexpected value"); |
+ }, onError: expectAsync((e) { |
+ Expect.identical(error, e); |
+ })); |
c.add(null); |
c.close(); |
}); |
@@ -376,9 +458,14 @@ testRethrow() { |
testStreamError(name, streamErrorTransform) { |
test("rethrow-$name-error", () { |
StreamController c = new StreamController(); |
- Stream s = streamErrorTransform(c.stream, (e) { throw error; }); |
- s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync( |
- (e) { Expect.identical(error, e); })); |
+ Stream s = streamErrorTransform(c.stream, (e) { |
+ throw error; |
+ }); |
+ s.listen((_) { |
+ Expect.fail("unexpected value"); |
+ }, onError: expectAsync((e) { |
+ Expect.identical(error, e); |
+ })); |
c.addError("SOME ERROR"); |
c.close(); |
}); |
@@ -387,9 +474,14 @@ testRethrow() { |
testFuture(name, streamValueTransform) { |
test("rethrow-$name-value", () { |
StreamController c = new StreamController(); |
- Future f = streamValueTransform(c.stream, (v) { throw error; }); |
- f.then((v) { Expect.fail("unreachable"); }, |
- onError: expectAsync((e) { Expect.identical(error, e); })); |
+ Future f = streamValueTransform(c.stream, (v) { |
+ throw error; |
+ }); |
+ f.then((v) { |
+ Expect.fail("unreachable"); |
+ }, onError: expectAsync((e) { |
+ Expect.identical(error, e); |
+ })); |
// Need two values to trigger compare for reduce. |
c.add(0); |
c.add(1); |
@@ -406,37 +498,40 @@ testRethrow() { |
testFuture("forEach", (s, act) => s.forEach(act)); |
testFuture("every", (s, act) => s.every(act)); |
testFuture("any", (s, act) => s.any(act)); |
- testFuture("reduce", (s, act) => s.reduce((a,b) => act(b))); |
- testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b))); |
+ testFuture("reduce", (s, act) => s.reduce((a, b) => act(b))); |
+ testFuture("fold", (s, act) => s.fold(0, (a, b) => act(b))); |
testFuture("drain", (s, act) => s.drain().then(act)); |
} |
void testBroadcastController() { |
test("broadcast-controller-basic", () { |
StreamProtocolTest test = new StreamProtocolTest.broadcast(); |
- test..expectListen() |
- ..expectData(42) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
- test..listen() |
- ..add(42) |
- ..close(); |
+ test |
+ ..expectListen() |
+ ..expectData(42) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
+ test |
+ ..listen() |
+ ..add(42) |
+ ..close(); |
}); |
test("broadcast-controller-listen-twice", () { |
StreamProtocolTest test = new StreamProtocolTest.broadcast(); |
- test..expectListen() |
- ..expectData(42, () { |
- test.listen(); |
- test.add(37); |
- test.close(); |
- }) |
+ test |
+ ..expectListen() |
+ ..expectData(42, () { |
+ test.listen(); |
+ test.add(37); |
+ test.close(); |
+ }) |
// Order is not guaranteed between subscriptions if not sync. |
- ..expectData(37) |
- ..expectData(37) |
- ..expectDone() |
- ..expectCancel() |
- ..expectDone(test.terminate); |
+ ..expectData(37) |
+ ..expectData(37) |
+ ..expectDone() |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
test.listen(); |
test.add(42); |
}); |
@@ -444,38 +539,42 @@ void testBroadcastController() { |
test("broadcast-controller-listen-twice-non-overlap", () { |
StreamProtocolTest test = new StreamProtocolTest.broadcast(); |
test |
- ..expectListen(() { |
- test.add(42); |
- }) |
- ..expectData(42, () { |
- test.cancel(); |
- }) |
- ..expectCancel(() { |
- test.listen(); |
- })..expectListen(() { |
- test.add(37); |
- }) |
- ..expectData(37, () { |
- test.close(); |
- }) |
- ..expectCancel() |
- ..expectDone(test.terminate); |
+ ..expectListen(() { |
+ test.add(42); |
+ }) |
+ ..expectData(42, () { |
+ test.cancel(); |
+ }) |
+ ..expectCancel(() { |
+ test.listen(); |
+ }) |
+ ..expectListen(() { |
+ test.add(37); |
+ }) |
+ ..expectData(37, () { |
+ test.close(); |
+ }) |
+ ..expectCancel() |
+ ..expectDone(test.terminate); |
test.listen(); |
}); |
test("broadcast-controller-individual-pause", () { |
StreamProtocolTest test = new StreamProtocolTest.broadcast(); |
var sub1; |
- test..expectListen() |
- ..expectData(42) |
- ..expectData(42, () { sub1.pause(); }) |
- ..expectData(43, () { |
- sub1.cancel(); |
- test.listen(); |
- test.add(44); |
- test.expectData(44); |
- test.expectData(44, test.terminate); |
- }); |
+ test |
+ ..expectListen() |
+ ..expectData(42) |
+ ..expectData(42, () { |
+ sub1.pause(); |
+ }) |
+ ..expectData(43, () { |
+ sub1.cancel(); |
+ test.listen(); |
+ test.add(44); |
+ test.expectData(44); |
+ test.expectData(44, test.terminate); |
+ }); |
sub1 = test.listen(); |
test.listen(); |
test.add(42); |
@@ -502,66 +601,69 @@ void testAsBroadcast() { |
test("asBroadcast-not-canceled", () { |
StreamProtocolTest test = new StreamProtocolTest.asBroadcast(); |
var sub; |
- test..expectListen() |
- ..expectBroadcastListen((_) { |
- test.add(42); |
- }) |
- ..expectData(42, () { |
- sub.cancel(); |
- }) |
- ..expectBroadcastCancel((_) { |
- sub = test.listen(); |
- }) |
- ..expectBroadcastListen((_) { |
- test.terminate(); |
- }); |
+ test |
+ ..expectListen() |
+ ..expectBroadcastListen((_) { |
+ test.add(42); |
+ }) |
+ ..expectData(42, () { |
+ sub.cancel(); |
+ }) |
+ ..expectBroadcastCancel((_) { |
+ sub = test.listen(); |
+ }) |
+ ..expectBroadcastListen((_) { |
+ test.terminate(); |
+ }); |
sub = test.listen(); |
}); |
test("asBroadcast-canceled", () { |
StreamProtocolTest test = new StreamProtocolTest.asBroadcast(); |
var sub; |
- test..expectListen() |
- ..expectBroadcastListen((_) { |
- test.add(42); |
- }) |
- ..expectData(42, () { |
- sub.cancel(); |
- }) |
- ..expectBroadcastCancel((originalSub) { |
- originalSub.cancel(); |
- }) |
- ..expectCancel(test.terminate); |
+ test |
+ ..expectListen() |
+ ..expectBroadcastListen((_) { |
+ test.add(42); |
+ }) |
+ ..expectData(42, () { |
+ sub.cancel(); |
+ }) |
+ ..expectBroadcastCancel((originalSub) { |
+ originalSub.cancel(); |
+ }) |
+ ..expectCancel(test.terminate); |
sub = test.listen(); |
}); |
test("asBroadcast-pause-original", () { |
StreamProtocolTest test = new StreamProtocolTest.asBroadcast(); |
var sub; |
- test..expectListen() |
- ..expectBroadcastListen((_) { |
- test.add(42); |
- test.add(43); |
- }) |
- ..expectData(42, () { |
- sub.cancel(); |
- }) |
- ..expectBroadcastCancel((originalSub) { |
- originalSub.pause(); // Pause before sending 43 from original sub. |
- }) |
- ..expectPause(() { |
- sub = test.listen(); |
- }) |
- ..expectBroadcastListen((originalSub) { |
- originalSub.resume(); |
- }) |
- ..expectData(43) |
- ..expectResume(() { |
- test.close(); |
- }) |
- ..expectCancel() |
- ..expectDone() |
- ..expectBroadcastCancel((_) => test.terminate()); |
+ test |
+ ..expectListen() |
+ ..expectBroadcastListen((_) { |
+ test.add(42); |
+ test.add(43); |
+ }) |
+ ..expectData(42, () { |
+ sub.cancel(); |
+ }) |
+ ..expectBroadcastCancel((originalSub) { |
+ originalSub.pause(); // Pause before sending 43 from original sub. |
+ }) |
+ ..expectPause(() { |
+ sub = test.listen(); |
+ }) |
+ ..expectBroadcastListen((originalSub) { |
+ originalSub.resume(); |
+ }) |
+ ..expectData(43) |
+ ..expectResume(() { |
+ test.close(); |
+ }) |
+ ..expectCancel() |
+ ..expectDone() |
+ ..expectBroadcastCancel((_) => test.terminate()); |
sub = test.listen(); |
}); |
} |
@@ -569,36 +671,45 @@ void testAsBroadcast() { |
void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
String type = "${sync?"S":"A"}${broadcast?"B":"S"}${asBroadcast?"aB":""}"; |
test("$type-controller-sink", () { |
- var done = expectAsync((){}); |
- var c = broadcast ? new StreamController.broadcast(sync: sync) |
- : new StreamController(sync: sync); |
+ var done = expectAsync(() {}); |
+ var c = broadcast |
+ ? new StreamController.broadcast(sync: sync) |
+ : new StreamController(sync: sync); |
var expected = new Events() |
- ..add(42)..error("error") |
- ..add(1)..add(2)..add(3)..add(4)..add(5) |
- ..add(43)..close(); |
- var actual = new Events.capture(asBroadcast ? c.stream.asBroadcastStream() |
- : c.stream); |
+ ..add(42) |
+ ..error("error") |
+ ..add(1) |
+ ..add(2) |
+ ..add(3) |
+ ..add(4) |
+ ..add(5) |
+ ..add(43) |
+ ..close(); |
+ var actual = new Events.capture( |
+ asBroadcast ? c.stream.asBroadcastStream() : c.stream); |
var sink = c.sink; |
sink.add(42); |
sink.addError("error"); |
- sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])) |
- .then((_) { |
- sink.add(43); |
- return sink.close(); |
- }) |
- .then((_) { |
- Expect.listEquals(expected.events, actual.events); |
- done(); |
- }); |
+ sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])).then((_) { |
+ sink.add(43); |
+ return sink.close(); |
+ }).then((_) { |
+ Expect.listEquals(expected.events, actual.events); |
+ done(); |
+ }); |
}); |
test("$type-controller-sink-canceled", () { |
- var done = expectAsync((){}); |
- var c = broadcast ? new StreamController.broadcast(sync: sync) |
- : new StreamController(sync: sync); |
+ var done = expectAsync(() {}); |
+ var c = broadcast |
+ ? new StreamController.broadcast(sync: sync) |
+ : new StreamController(sync: sync); |
var expected = new Events() |
- ..add(42)..error("error") |
- ..add(1)..add(2)..add(3); |
+ ..add(42) |
+ ..error("error") |
+ ..add(1) |
+ ..add(2) |
+ ..add(3); |
var stream = asBroadcast ? c.stream.asBroadcastStream() : c.stream; |
var actual = new Events(); |
var sub; |
@@ -610,74 +721,75 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
var sink = c.sink; |
sink.add(42); |
sink.addError("error"); |
- sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])) |
- .then((_) { |
- Expect.listEquals(expected.events, actual.events); |
- // Close controller as well. It has no listener. If it is a broadcast |
- // stream, it will still be open, and we read the "done" future before |
- // closing. A normal stream is already done when its listener cancels. |
- Future doneFuture = sink.done; |
- sink.close(); |
- return doneFuture; |
- }) |
- .then((_) { |
- // No change in events. |
- Expect.listEquals(expected.events, actual.events); |
- done(); |
- }); |
+ sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])).then((_) { |
+ Expect.listEquals(expected.events, actual.events); |
+ // Close controller as well. It has no listener. If it is a broadcast |
+ // stream, it will still be open, and we read the "done" future before |
+ // closing. A normal stream is already done when its listener cancels. |
+ Future doneFuture = sink.done; |
+ sink.close(); |
+ return doneFuture; |
+ }).then((_) { |
+ // No change in events. |
+ Expect.listEquals(expected.events, actual.events); |
+ done(); |
+ }); |
}); |
test("$type-controller-sink-paused", () { |
- var done = expectAsync((){}); |
- var c = broadcast ? new StreamController.broadcast(sync: sync) |
- : new StreamController(sync: sync); |
+ var done = expectAsync(() {}); |
+ var c = broadcast |
+ ? new StreamController.broadcast(sync: sync) |
+ : new StreamController(sync: sync); |
var expected = new Events() |
- ..add(42)..error("error") |
- ..add(1)..add(2)..add(3) |
- ..add(4)..add(5)..add(43)..close(); |
+ ..add(42) |
+ ..error("error") |
+ ..add(1) |
+ ..add(2) |
+ ..add(3) |
+ ..add(4) |
+ ..add(5) |
+ ..add(43) |
+ ..close(); |
var stream = asBroadcast ? c.stream.asBroadcastStream() : c.stream; |
var actual = new Events(); |
var sub; |
var pauseIsDone = false; |
- sub = stream.listen( |
- (v) { |
- if (v == 3) { |
- sub.pause(new Future.delayed(const Duration(milliseconds: 15), |
- () { pauseIsDone = true; })); |
- } |
- actual.add(v); |
- }, |
- onError: actual.error, |
- onDone: actual.close); |
+ sub = stream.listen((v) { |
+ if (v == 3) { |
+ sub.pause(new Future.delayed(const Duration(milliseconds: 15), () { |
+ pauseIsDone = true; |
+ })); |
+ } |
+ actual.add(v); |
+ }, onError: actual.error, onDone: actual.close); |
var sink = c.sink; |
sink.add(42); |
sink.addError("error"); |
- sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])) |
- .then((_) { |
- sink.add(43); |
- return sink.close(); |
- }) |
- .then((_) { |
- if (asBroadcast || broadcast) { |
- // The done-future of the sink completes when it passes |
- // the done event to the asBroadcastStream controller, which is |
- // before the final listener gets the event. |
- // Wait for the done event to be *delivered* before testing the |
- // events. |
- actual.onDone(() { |
- Expect.listEquals(expected.events, actual.events); |
- done(); |
- }); |
- } else { |
- Expect.listEquals(expected.events, actual.events); |
- done(); |
- } |
+ sink.addStream(new Stream.fromIterable([1, 2, 3, 4, 5])).then((_) { |
+ sink.add(43); |
+ return sink.close(); |
+ }).then((_) { |
+ if (asBroadcast || broadcast) { |
+ // The done-future of the sink completes when it passes |
+ // the done event to the asBroadcastStream controller, which is |
+ // before the final listener gets the event. |
+ // Wait for the done event to be *delivered* before testing the |
+ // events. |
+ actual.onDone(() { |
+ Expect.listEquals(expected.events, actual.events); |
+ done(); |
}); |
+ } else { |
+ Expect.listEquals(expected.events, actual.events); |
+ done(); |
+ } |
+ }); |
}); |
test("$type-controller-addstream-error-stop", () { |
// Check that addStream defaults to ending after the first error. |
- var done = expectAsync((){}); |
+ var done = expectAsync(() {}); |
StreamController c = broadcast |
? new StreamController.broadcast(sync: sync) |
: new StreamController(sync: sync); |
@@ -685,9 +797,19 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
var actual = new Events.capture(stream); |
var source = new Events(); |
- source..add(1)..add(2)..error("BAD")..add(3)..error("FAIL")..close(); |
+ source |
+ ..add(1) |
+ ..add(2) |
+ ..error("BAD") |
+ ..add(3) |
+ ..error("FAIL") |
+ ..close(); |
- var expected = new Events()..add(1)..add(2)..error("BAD")..close(); |
+ var expected = new Events() |
+ ..add(1) |
+ ..add(2) |
+ ..error("BAD") |
+ ..close(); |
StreamController sourceController = new StreamController(); |
c.addStream(sourceController.stream).then((_) { |
c.close().then((_) { |
@@ -702,7 +824,7 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
test("$type-controller-addstream-error-forward", () { |
// Check that addStream with cancelOnError:false passes all data and errors |
// to the controller. |
- var done = expectAsync((){}); |
+ var done = expectAsync(() {}); |
StreamController c = broadcast |
? new StreamController.broadcast(sync: sync) |
: new StreamController(sync: sync); |
@@ -710,7 +832,13 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
var actual = new Events.capture(stream); |
var source = new Events(); |
- source..add(1)..add(2)..addError("BAD")..add(3)..addError("FAIL")..close(); |
+ source |
+ ..add(1) |
+ ..add(2) |
+ ..addError("BAD") |
+ ..add(3) |
+ ..addError("FAIL") |
+ ..close(); |
StreamController sourceController = new StreamController(); |
c.addStream(sourceController.stream, cancelOnError: false).then((_) { |
@@ -725,7 +853,7 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
test("$type-controller-addstream-twice", () { |
// Using addStream twice on the same stream |
- var done = expectAsync((){}); |
+ var done = expectAsync(() {}); |
StreamController c = broadcast |
? new StreamController.broadcast(sync: sync) |
: new StreamController(sync: sync); |
@@ -733,14 +861,22 @@ void testSink({bool sync, bool broadcast, bool asBroadcast}) { |
var actual = new Events.capture(stream); |
// Streams of five events, throws on 3. |
- Stream s1 = new Stream.fromIterable([1,2,3,4,5]) |
- .map((x) => (x == 3 ? throw x : x)); |
- Stream s2 = new Stream.fromIterable([1,2,3,4,5]) |
- .map((x) => (x == 3 ? throw x : x)); |
+ Stream s1 = new Stream.fromIterable([1, 2, 3, 4, 5]) |
+ .map((x) => (x == 3 ? throw x : x)); |
+ Stream s2 = new Stream.fromIterable([1, 2, 3, 4, 5]) |
+ .map((x) => (x == 3 ? throw x : x)); |
Events expected = new Events(); |
- expected..add(1)..add(2)..error(3); |
- expected..add(1)..add(2)..error(3)..add(4)..add(5); |
+ expected |
+ ..add(1) |
+ ..add(2) |
+ ..error(3); |
+ expected |
+ ..add(1) |
+ ..add(2) |
+ ..error(3) |
+ ..add(4) |
+ ..add(5); |
expected..close(); |
c.addStream(s1).then((_) { |