| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Test the basic StreamController and StreamController.singleSubscription. | 5 // Test the basic StreamController and StreamController.singleSubscription. |
| 6 library stream_controller_async_test; | 6 library stream_controller_async_test; |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
| 10 import '../../../pkg/unittest/lib/unittest.dart'; | 10 import '../../../pkg/unittest/lib/unittest.dart'; |
| 11 import 'event_helper.dart'; | 11 import 'event_helper.dart'; |
| 12 | 12 |
| 13 testController() { | 13 testController() { |
| 14 // Test reduce | 14 // Test reduce |
| 15 test("StreamController.reduce", () { | 15 test("StreamController.reduce", () { |
| 16 StreamController c = new StreamController.multiSubscription(); | 16 StreamController c = new StreamController.broadcast(); |
| 17 c.reduce(0, (a,b) => a + b) | 17 Stream stream = c.stream; |
| 18 stream.reduce(0, (a,b) => a + b) |
| 18 .then(expectAsync1((int v) { | 19 .then(expectAsync1((int v) { |
| 19 Expect.equals(42, v); | 20 Expect.equals(42, v); |
| 20 })); | 21 })); |
| 21 c.add(10); | 22 c.add(10); |
| 22 c.add(32); | 23 c.add(32); |
| 23 c.close(); | 24 c.close(); |
| 24 }); | 25 }); |
| 25 | 26 |
| 26 test("StreamController.reduce throws", () { | 27 test("StreamController.reduce throws", () { |
| 27 StreamController c = new StreamController.multiSubscription(); | 28 StreamController c = new StreamController.broadcast(); |
| 28 c.reduce(0, (a,b) { throw "Fnyf!"; }) | 29 Stream stream = c.stream; |
| 30 stream.reduce(0, (a,b) { throw "Fnyf!"; }) |
| 29 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); | 31 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); |
| 30 c.add(42); | 32 c.add(42); |
| 31 }); | 33 }); |
| 32 | 34 |
| 33 test("StreamController.pipeInto", () { | 35 test("StreamController.pipeInto", () { |
| 34 StreamController c = new StreamController.multiSubscription(); | 36 StreamController c = new StreamController.broadcast(); |
| 35 var list = <int>[]; | 37 var list = <int>[]; |
| 36 c.pipeInto(new CollectionSink<int>(list)) | 38 Stream stream = c.stream; |
| 39 stream.pipeInto(new CollectionSink<int>(list)) |
| 37 .whenComplete(expectAsync0(() { | 40 .whenComplete(expectAsync0(() { |
| 38 Expect.listEquals(<int>[1,2,9,3,9], list); | 41 Expect.listEquals(<int>[1,2,9,3,9], list); |
| 39 })); | 42 })); |
| 40 c.add(1); | 43 c.add(1); |
| 41 c.add(2); | 44 c.add(2); |
| 42 c.add(9); | 45 c.add(9); |
| 43 c.add(3); | 46 c.add(3); |
| 44 c.add(9); | 47 c.add(9); |
| 45 c.close(); | 48 c.close(); |
| 46 }); | 49 }); |
| 47 } | 50 } |
| 48 | 51 |
| 49 testSingleController() { | 52 testSingleController() { |
| 50 test("Single-subscription StreamController.reduce", () { | 53 test("Single-subscription StreamController.reduce", () { |
| 51 StreamController c = new StreamController(); | 54 StreamController c = new StreamController(); |
| 52 c.reduce(0, (a,b) => a + b) | 55 Stream stream = c.stream; |
| 56 stream.reduce(0, (a,b) => a + b) |
| 53 .then(expectAsync1((int v) { Expect.equals(42, v); })); | 57 .then(expectAsync1((int v) { Expect.equals(42, v); })); |
| 54 c.add(10); | 58 c.add(10); |
| 55 c.add(32); | 59 c.add(32); |
| 56 c.close(); | 60 c.close(); |
| 57 }); | 61 }); |
| 58 | 62 |
| 59 test("Single-subscription StreamController.reduce throws", () { | 63 test("Single-subscription StreamController.reduce throws", () { |
| 60 StreamController c = new StreamController(); | 64 StreamController c = new StreamController(); |
| 61 c.reduce(0, (a,b) { throw "Fnyf!"; }) | 65 Stream stream = c.stream; |
| 66 stream.reduce(0, (a,b) { throw "Fnyf!"; }) |
| 62 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); | 67 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); |
| 63 c.add(42); | 68 c.add(42); |
| 64 }); | 69 }); |
| 65 | 70 |
| 66 test("Single-subscription StreamController.pipeInto", () { | 71 test("Single-subscription StreamController.pipeInto", () { |
| 67 StreamController c = new StreamController(); | 72 StreamController c = new StreamController(); |
| 68 var list = <int>[]; | 73 var list = <int>[]; |
| 69 c.pipeInto(new CollectionSink<int>(list)) | 74 Stream stream = c.stream; |
| 75 stream.pipeInto(new CollectionSink<int>(list)) |
| 70 .whenComplete(expectAsync0(() { | 76 .whenComplete(expectAsync0(() { |
| 71 Expect.listEquals(<int>[1,2,9,3,9], list); | 77 Expect.listEquals(<int>[1,2,9,3,9], list); |
| 72 })); | 78 })); |
| 73 c.add(1); | 79 c.add(1); |
| 74 c.add(2); | 80 c.add(2); |
| 75 c.add(9); | 81 c.add(9); |
| 76 c.add(3); | 82 c.add(3); |
| 77 c.add(9); | 83 c.add(9); |
| 78 c.close(); | 84 c.close(); |
| 79 }); | 85 }); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 sink.add(5); // seen by stream 10 | 151 sink.add(5); // seen by stream 10 |
| 146 sink.close(); | 152 sink.close(); |
| 147 }); | 153 }); |
| 148 } | 154 } |
| 149 | 155 |
| 150 testExtraMethods() { | 156 testExtraMethods() { |
| 151 Events sentEvents = new Events()..add(7)..add(9)..add(13)..add(87)..close(); | 157 Events sentEvents = new Events()..add(7)..add(9)..add(13)..add(87)..close(); |
| 152 | 158 |
| 153 test("firstMatching", () { | 159 test("firstMatching", () { |
| 154 StreamController c = new StreamController(); | 160 StreamController c = new StreamController(); |
| 155 Future f = c.firstMatching((x) => (x % 3) == 0); | 161 Future f = c.stream.firstMatching((x) => (x % 3) == 0); |
| 156 f.then(expectAsync1((v) { Expect.equals(9, v); })); | 162 f.then(expectAsync1((v) { Expect.equals(9, v); })); |
| 157 sentEvents.replay(c); | 163 sentEvents.replay(c); |
| 158 }); | 164 }); |
| 159 | 165 |
| 160 test("firstMatching 2", () { | 166 test("firstMatching 2", () { |
| 161 StreamController c = new StreamController(); | 167 StreamController c = new StreamController(); |
| 162 Future f = c.firstMatching((x) => (x % 4) == 0); | 168 Future f = c.stream.firstMatching((x) => (x % 4) == 0); |
| 163 f.catchError(expectAsync1((e) {})); | 169 f.catchError(expectAsync1((e) {})); |
| 164 sentEvents.replay(c); | 170 sentEvents.replay(c); |
| 165 }); | 171 }); |
| 166 | 172 |
| 167 test("firstMatching 3", () { | 173 test("firstMatching 3", () { |
| 168 StreamController c = new StreamController(); | 174 StreamController c = new StreamController(); |
| 169 Future f = c.firstMatching((x) => (x % 4) == 0, defaultValue: () => 999); | 175 Future f = c.stream.firstMatching((x) => (x % 4) == 0, defaultValue: () => 9
99); |
| 170 f.then(expectAsync1((v) { Expect.equals(999, v); })); | 176 f.then(expectAsync1((v) { Expect.equals(999, v); })); |
| 171 sentEvents.replay(c); | 177 sentEvents.replay(c); |
| 172 }); | 178 }); |
| 173 | 179 |
| 174 | 180 |
| 175 test("lastMatching", () { | 181 test("lastMatching", () { |
| 176 StreamController c = new StreamController(); | 182 StreamController c = new StreamController(); |
| 177 Future f = c.lastMatching((x) => (x % 3) == 0); | 183 Future f = c.stream.lastMatching((x) => (x % 3) == 0); |
| 178 f.then(expectAsync1((v) { Expect.equals(87, v); })); | 184 f.then(expectAsync1((v) { Expect.equals(87, v); })); |
| 179 sentEvents.replay(c); | 185 sentEvents.replay(c); |
| 180 }); | 186 }); |
| 181 | 187 |
| 182 test("lastMatching 2", () { | 188 test("lastMatching 2", () { |
| 183 StreamController c = new StreamController(); | 189 StreamController c = new StreamController(); |
| 184 Future f = c.lastMatching((x) => (x % 4) == 0); | 190 Future f = c.stream.lastMatching((x) => (x % 4) == 0); |
| 185 f.catchError(expectAsync1((e) {})); | 191 f.catchError(expectAsync1((e) {})); |
| 186 sentEvents.replay(c); | 192 sentEvents.replay(c); |
| 187 }); | 193 }); |
| 188 | 194 |
| 189 test("lastMatching 3", () { | 195 test("lastMatching 3", () { |
| 190 StreamController c = new StreamController(); | 196 StreamController c = new StreamController(); |
| 191 Future f = c.lastMatching((x) => (x % 4) == 0, defaultValue: () => 999); | 197 Future f = c.stream.lastMatching((x) => (x % 4) == 0, defaultValue: () => 99
9); |
| 192 f.then(expectAsync1((v) { Expect.equals(999, v); })); | 198 f.then(expectAsync1((v) { Expect.equals(999, v); })); |
| 193 sentEvents.replay(c); | 199 sentEvents.replay(c); |
| 194 }); | 200 }); |
| 195 | 201 |
| 196 test("singleMatching", () { | 202 test("singleMatching", () { |
| 197 StreamController c = new StreamController(); | 203 StreamController c = new StreamController(); |
| 198 Future f = c.singleMatching((x) => (x % 9) == 0); | 204 Future f = c.stream.singleMatching((x) => (x % 9) == 0); |
| 199 f.then(expectAsync1((v) { Expect.equals(9, v); })); | 205 f.then(expectAsync1((v) { Expect.equals(9, v); })); |
| 200 sentEvents.replay(c); | 206 sentEvents.replay(c); |
| 201 }); | 207 }); |
| 202 | 208 |
| 203 test("singleMatching 2", () { | 209 test("singleMatching 2", () { |
| 204 StreamController c = new StreamController(); | 210 StreamController c = new StreamController(); |
| 205 Future f = c.singleMatching((x) => (x % 3) == 0); // Matches both 9 and 87.
. | 211 Future f = c.stream.singleMatching((x) => (x % 3) == 0); // Matches both 9
and 87.. |
| 206 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 212 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
| 207 sentEvents.replay(c); | 213 sentEvents.replay(c); |
| 208 }); | 214 }); |
| 209 | 215 |
| 210 test("first", () { | 216 test("first", () { |
| 211 StreamController c = new StreamController(); | 217 StreamController c = new StreamController(); |
| 212 Future f = c.first; | 218 Future f = c.stream.first; |
| 213 f.then(expectAsync1((v) { Expect.equals(7, v);})); | 219 f.then(expectAsync1((v) { Expect.equals(7, v);})); |
| 214 sentEvents.replay(c); | 220 sentEvents.replay(c); |
| 215 }); | 221 }); |
| 216 | 222 |
| 217 test("first empty", () { | 223 test("first empty", () { |
| 218 StreamController c = new StreamController(); | 224 StreamController c = new StreamController(); |
| 219 Future f = c.first; | 225 Future f = c.stream.first; |
| 220 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 226 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
| 221 Events emptyEvents = new Events()..close(); | 227 Events emptyEvents = new Events()..close(); |
| 222 emptyEvents.replay(c); | 228 emptyEvents.replay(c); |
| 223 }); | 229 }); |
| 224 | 230 |
| 225 test("first error", () { | 231 test("first error", () { |
| 226 StreamController c = new StreamController(); | 232 StreamController c = new StreamController(); |
| 227 Future f = c.first; | 233 Future f = c.stream.first; |
| 228 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 234 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
| 229 Events errorEvents = new Events()..error("error")..close(); | 235 Events errorEvents = new Events()..error("error")..close(); |
| 230 errorEvents.replay(c); | 236 errorEvents.replay(c); |
| 231 }); | 237 }); |
| 232 | 238 |
| 233 test("first error 2", () { | 239 test("first error 2", () { |
| 234 StreamController c = new StreamController(); | 240 StreamController c = new StreamController(); |
| 235 Future f = c.first; | 241 Future f = c.stream.first; |
| 236 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 242 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
| 237 Events errorEvents = new Events()..error("error")..error("error2")..close(); | 243 Events errorEvents = new Events()..error("error")..error("error2")..close(); |
| 238 errorEvents.replay(c); | 244 errorEvents.replay(c); |
| 239 }); | 245 }); |
| 240 | 246 |
| 241 test("last", () { | 247 test("last", () { |
| 242 StreamController c = new StreamController(); | 248 StreamController c = new StreamController(); |
| 243 Future f = c.last; | 249 Future f = c.stream.last; |
| 244 f.then(expectAsync1((v) { Expect.equals(87, v);})); | 250 f.then(expectAsync1((v) { Expect.equals(87, v);})); |
| 245 sentEvents.replay(c); | 251 sentEvents.replay(c); |
| 246 }); | 252 }); |
| 247 | 253 |
| 248 test("last empty", () { | 254 test("last empty", () { |
| 249 StreamController c = new StreamController(); | 255 StreamController c = new StreamController(); |
| 250 Future f = c.last; | 256 Future f = c.stream.last; |
| 251 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 257 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
| 252 Events emptyEvents = new Events()..close(); | 258 Events emptyEvents = new Events()..close(); |
| 253 emptyEvents.replay(c); | 259 emptyEvents.replay(c); |
| 254 }); | 260 }); |
| 255 | 261 |
| 256 test("last error", () { | 262 test("last error", () { |
| 257 StreamController c = new StreamController(); | 263 StreamController c = new StreamController(); |
| 258 Future f = c.last; | 264 Future f = c.stream.last; |
| 259 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 265 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
| 260 Events errorEvents = new Events()..error("error")..close(); | 266 Events errorEvents = new Events()..error("error")..close(); |
| 261 errorEvents.replay(c); | 267 errorEvents.replay(c); |
| 262 }); | 268 }); |
| 263 | 269 |
| 264 test("last error 2", () { | 270 test("last error 2", () { |
| 265 StreamController c = new StreamController(); | 271 StreamController c = new StreamController(); |
| 266 Future f = c.last; | 272 Future f = c.stream.last; |
| 267 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); | 273 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); |
| 268 Events errorEvents = new Events()..error("error")..error("error2")..close(); | 274 Events errorEvents = new Events()..error("error")..error("error2")..close(); |
| 269 errorEvents.replay(c); | 275 errorEvents.replay(c); |
| 270 }); | 276 }); |
| 271 | 277 |
| 272 test("elementAt", () { | 278 test("elementAt", () { |
| 273 StreamController c = new StreamController(); | 279 StreamController c = new StreamController(); |
| 274 Future f = c.elementAt(2); | 280 Future f = c.stream.elementAt(2); |
| 275 f.then(expectAsync1((v) { Expect.equals(13, v);})); | 281 f.then(expectAsync1((v) { Expect.equals(13, v);})); |
| 276 sentEvents.replay(c); | 282 sentEvents.replay(c); |
| 277 }); | 283 }); |
| 278 | 284 |
| 279 test("elementAt 2", () { | 285 test("elementAt 2", () { |
| 280 StreamController c = new StreamController(); | 286 StreamController c = new StreamController(); |
| 281 Future f = c.elementAt(20); | 287 Future f = c.stream.elementAt(20); |
| 282 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); | 288 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); |
| 283 sentEvents.replay(c); | 289 sentEvents.replay(c); |
| 284 }); | 290 }); |
| 285 } | 291 } |
| 286 | 292 |
| 287 testPause() { | 293 testPause() { |
| 288 test("pause event-unpause", () { | 294 test("pause event-unpause", () { |
| 289 StreamController c = new StreamController(); | 295 StreamController c = new StreamController(); |
| 290 Events actualEvents = new Events.capture(c); | 296 Events actualEvents = new Events.capture(c.stream); |
| 291 Events expectedEvents = new Events(); | 297 Events expectedEvents = new Events(); |
| 292 expectedEvents.add(42); | 298 expectedEvents.add(42); |
| 293 c.add(42); | 299 c.add(42); |
| 294 Expect.listEquals(expectedEvents.events, actualEvents.events); | 300 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 295 Completer completer = new Completer(); | 301 Completer completer = new Completer(); |
| 296 actualEvents.pause(completer.future); | 302 actualEvents.pause(completer.future); |
| 297 c..add(43)..add(44)..close(); | 303 c..add(43)..add(44)..close(); |
| 298 Expect.listEquals(expectedEvents.events, actualEvents.events); | 304 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 299 completer.complete(); | 305 completer.complete(); |
| 300 expectedEvents..add(43)..add(44)..close(); | 306 expectedEvents..add(43)..add(44)..close(); |
| 301 actualEvents.onDone(expectAsync0(() { | 307 actualEvents.onDone(expectAsync0(() { |
| 302 Expect.listEquals(expectedEvents.events, actualEvents.events); | 308 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 303 })); | 309 })); |
| 304 }); | 310 }); |
| 305 | 311 |
| 306 test("pause twice event-unpause", () { | 312 test("pause twice event-unpause", () { |
| 307 StreamController c = new StreamController(); | 313 StreamController c = new StreamController(); |
| 308 Events actualEvents = new Events.capture(c); | 314 Events actualEvents = new Events.capture(c.stream); |
| 309 Events expectedEvents = new Events(); | 315 Events expectedEvents = new Events(); |
| 310 expectedEvents.add(42); | 316 expectedEvents.add(42); |
| 311 c.add(42); | 317 c.add(42); |
| 312 Expect.listEquals(expectedEvents.events, actualEvents.events); | 318 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 313 Completer completer = new Completer(); | 319 Completer completer = new Completer(); |
| 314 Completer completer2 = new Completer(); | 320 Completer completer2 = new Completer(); |
| 315 actualEvents.pause(completer.future); | 321 actualEvents.pause(completer.future); |
| 316 actualEvents.pause(completer2.future); | 322 actualEvents.pause(completer2.future); |
| 317 c..add(43)..add(44)..close(); | 323 c..add(43)..add(44)..close(); |
| 318 Expect.listEquals(expectedEvents.events, actualEvents.events); | 324 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 319 completer.complete(); | 325 completer.complete(); |
| 320 Expect.listEquals(expectedEvents.events, actualEvents.events); | 326 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 321 completer2.complete(); | 327 completer2.complete(); |
| 322 expectedEvents..add(43)..add(44)..close(); | 328 expectedEvents..add(43)..add(44)..close(); |
| 323 actualEvents.onDone(expectAsync0((){ | 329 actualEvents.onDone(expectAsync0((){ |
| 324 Expect.listEquals(expectedEvents.events, actualEvents.events); | 330 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 325 })); | 331 })); |
| 326 }); | 332 }); |
| 327 | 333 |
| 328 test("pause twice direct-unpause", () { | 334 test("pause twice direct-unpause", () { |
| 329 StreamController c = new StreamController(); | 335 StreamController c = new StreamController(); |
| 330 Events actualEvents = new Events.capture(c); | 336 Events actualEvents = new Events.capture(c.stream); |
| 331 Events expectedEvents = new Events(); | 337 Events expectedEvents = new Events(); |
| 332 expectedEvents.add(42); | 338 expectedEvents.add(42); |
| 333 c.add(42); | 339 c.add(42); |
| 334 Expect.listEquals(expectedEvents.events, actualEvents.events); | 340 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 335 actualEvents.pause(); | 341 actualEvents.pause(); |
| 336 actualEvents.pause(); | 342 actualEvents.pause(); |
| 337 c.add(43); | 343 c.add(43); |
| 338 c.add(44); | 344 c.add(44); |
| 339 c.close(); | 345 c.close(); |
| 340 Expect.listEquals(expectedEvents.events, actualEvents.events); | 346 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 341 actualEvents.resume(); | 347 actualEvents.resume(); |
| 342 Expect.listEquals(expectedEvents.events, actualEvents.events); | 348 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 343 expectedEvents..add(43)..add(44)..close(); | 349 expectedEvents..add(43)..add(44)..close(); |
| 344 actualEvents.onDone(expectAsync0(() { | 350 actualEvents.onDone(expectAsync0(() { |
| 345 Expect.listEquals(expectedEvents.events, actualEvents.events); | 351 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 346 })); | 352 })); |
| 347 actualEvents.resume(); | 353 actualEvents.resume(); |
| 348 }); | 354 }); |
| 349 | 355 |
| 350 test("pause twice direct-event-unpause", () { | 356 test("pause twice direct-event-unpause", () { |
| 351 StreamController c = new StreamController(); | 357 StreamController c = new StreamController(); |
| 352 Events actualEvents = new Events.capture(c); | 358 Events actualEvents = new Events.capture(c.stream); |
| 353 Events expectedEvents = new Events(); | 359 Events expectedEvents = new Events(); |
| 354 expectedEvents.add(42); | 360 expectedEvents.add(42); |
| 355 c.add(42); | 361 c.add(42); |
| 356 Expect.listEquals(expectedEvents.events, actualEvents.events); | 362 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 357 Completer completer = new Completer(); | 363 Completer completer = new Completer(); |
| 358 actualEvents.pause(completer.future); | 364 actualEvents.pause(completer.future); |
| 359 actualEvents.pause(); | 365 actualEvents.pause(); |
| 360 c.add(43); | 366 c.add(43); |
| 361 c.add(44); | 367 c.add(44); |
| 362 c.close(); | 368 c.close(); |
| 363 Expect.listEquals(expectedEvents.events, actualEvents.events); | 369 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 364 actualEvents.resume(); | 370 actualEvents.resume(); |
| 365 Expect.listEquals(expectedEvents.events, actualEvents.events); | 371 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 366 expectedEvents..add(43)..add(44)..close(); | 372 expectedEvents..add(43)..add(44)..close(); |
| 367 actualEvents.onDone(expectAsync0(() { | 373 actualEvents.onDone(expectAsync0(() { |
| 368 Expect.listEquals(expectedEvents.events, actualEvents.events); | 374 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 369 })); | 375 })); |
| 370 completer.complete(); | 376 completer.complete(); |
| 371 }); | 377 }); |
| 372 | 378 |
| 373 test("pause twice direct-unpause", () { | 379 test("pause twice direct-unpause", () { |
| 374 StreamController c = new StreamController(); | 380 StreamController c = new StreamController(); |
| 375 Events actualEvents = new Events.capture(c); | 381 Events actualEvents = new Events.capture(c.stream); |
| 376 Events expectedEvents = new Events(); | 382 Events expectedEvents = new Events(); |
| 377 expectedEvents.add(42); | 383 expectedEvents.add(42); |
| 378 c.add(42); | 384 c.add(42); |
| 379 Expect.listEquals(expectedEvents.events, actualEvents.events); | 385 Expect.listEquals(expectedEvents.events, actualEvents.events); |
| 380 Completer completer = new Completer(); | 386 Completer completer = new Completer(); |
| 381 actualEvents.pause(completer.future); | 387 actualEvents.pause(completer.future); |
| 382 actualEvents.pause(); | 388 actualEvents.pause(); |
| 383 c.add(43); | 389 c.add(43); |
| 384 c.add(44); | 390 c.add(44); |
| 385 c.close(); | 391 c.close(); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 testFuture("reduce", (s, act) => s.reduce(0, (a,b) => act(b))); | 451 testFuture("reduce", (s, act) => s.reduce(0, (a,b) => act(b))); |
| 446 } | 452 } |
| 447 | 453 |
| 448 main() { | 454 main() { |
| 449 testController(); | 455 testController(); |
| 450 testSingleController(); | 456 testSingleController(); |
| 451 testExtraMethods(); | 457 testExtraMethods(); |
| 452 testPause(); | 458 testPause(); |
| 453 testRethrow(); | 459 testRethrow(); |
| 454 } | 460 } |
| OLD | NEW |