Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: test/stream_queue_test.dart

Issue 1223423002: Use a named param for StreamQueue.cancelImmediately. (Closed) Base URL: git@github.com:dart-lang/async.git@master
Patch Set: Code review changes Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/stream_queue.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 }); 345 });
346 346
347 test("cancels underlying subscription, returns result", () async { 347 test("cancels underlying subscription, returns result", () async {
348 var cancelFuture = new Future.value(42); 348 var cancelFuture = new Future.value(42);
349 var controller = new StreamController(onCancel: () => cancelFuture); 349 var controller = new StreamController(onCancel: () => cancelFuture);
350 var events = new StreamQueue<int>(controller.stream); 350 var events = new StreamQueue<int>(controller.stream);
351 controller.add(1); 351 controller.add(1);
352 expect(await events.next, 1); 352 expect(await events.next, 1);
353 expect(await events.cancel(), 42); 353 expect(await events.cancel(), 42);
354 }); 354 });
355 });
356 355
357 group("cancelImmediately()", () async { 356 group("with immediate: true", () async {
358 test("closes the events, prevents any other operation", () async { 357 test("closes the events, prevents any other operation", () async {
359 var events = new StreamQueue<int>(createStream()); 358 var events = new StreamQueue<int>(createStream());
360 await events.cancelImmediately(); 359 await events.cancel(immediate: true);
361 expect(() => events.next, throwsStateError); 360 expect(() => events.next, throwsStateError);
362 expect(() => events.skip(1), throwsStateError); 361 expect(() => events.skip(1), throwsStateError);
363 expect(() => events.take(1), throwsStateError); 362 expect(() => events.take(1), throwsStateError);
364 expect(() => events.rest, throwsStateError); 363 expect(() => events.rest, throwsStateError);
365 expect(() => events.cancel(), throwsStateError); 364 expect(() => events.cancel(), throwsStateError);
366 }); 365 });
367 366
368 test("cancels the underlying subscription immediately", () async { 367 test("cancels the underlying subscription immediately", () async {
369 var controller = new StreamController(); 368 var controller = new StreamController();
370 controller.add(1); 369 controller.add(1);
371 370
372 var events = new StreamQueue<int>(controller.stream); 371 var events = new StreamQueue<int>(controller.stream);
373 expect(await events.next, 1); 372 expect(await events.next, 1);
374 expect(controller.hasListener, isTrue); 373 expect(controller.hasListener, isTrue);
375 374
376 events.cancelImmediately(); 375 events.cancel(immediate: true);
377 await expect(controller.hasListener, isFalse); 376 await expect(controller.hasListener, isFalse);
378 }); 377 });
379 378
380 test("closes pending requests", () async { 379 test("closes pending requests", () async {
381 var events = new StreamQueue<int>(createStream()); 380 var events = new StreamQueue<int>(createStream());
382 expect(await events.next, 1); 381 expect(await events.next, 1);
383 expect(events.next, throwsStateError); 382 expect(events.next, throwsStateError);
384 expect(events.hasNext, completion(isFalse)); 383 expect(events.hasNext, completion(isFalse));
385 384
386 await events.cancelImmediately(); 385 await events.cancel(immediate: true);
387 }); 386 });
388 387
389 test("returns the result of closing the underlying subscription", () async { 388 test("returns the result of closing the underlying subscription",
390 var controller = new StreamController( 389 () async {
391 onCancel: () => new Future.value(42)); 390 var controller = new StreamController(
392 var events = new StreamQueue<int>(controller.stream); 391 onCancel: () => new Future.value(42));
393 expect(await events.cancelImmediately(), 42); 392 var events = new StreamQueue<int>(controller.stream);
394 }); 393 expect(await events.cancel(immediate: true), 42);
394 });
395 395
396 test("listens and then cancels a stream that hasn't been listened to yet", 396 test("listens and then cancels a stream that hasn't been listened to yet",
397 () async { 397 () async {
398 var wasListened = false; 398 var wasListened = false;
399 var controller = new StreamController( 399 var controller = new StreamController(
400 onListen: () => wasListened = true); 400 onListen: () => wasListened = true);
401 var events = new StreamQueue<int>(controller.stream); 401 var events = new StreamQueue<int>(controller.stream);
402 expect(wasListened, isFalse); 402 expect(wasListened, isFalse);
403 expect(controller.hasListener, isFalse); 403 expect(controller.hasListener, isFalse);
404 404
405 await events.cancelImmediately(); 405 await events.cancel(immediate: true);
406 expect(wasListened, isTrue); 406 expect(wasListened, isTrue);
407 expect(controller.hasListener, isFalse); 407 expect(controller.hasListener, isFalse);
408 });
408 }); 409 });
409 }); 410 });
410 411
411 group("hasNext operation", () { 412 group("hasNext operation", () {
412 test("true at start", () async { 413 test("true at start", () async {
413 var events = new StreamQueue<int>(createStream()); 414 var events = new StreamQueue<int>(createStream());
414 expect(await events.hasNext, isTrue); 415 expect(await events.hasNext, isTrue);
415 }); 416 });
416 417
417 test("true after start", () async { 418 test("true after start", () async {
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 controller.add(4); 677 controller.add(4);
677 await flushMicrotasks(); 678 await flushMicrotasks();
678 controller.close(); 679 controller.close();
679 }(); 680 }();
680 return controller.stream; 681 return controller.stream;
681 } 682 }
682 683
683 Stream<int> createLongStream(int eventCount) async* { 684 Stream<int> createLongStream(int eventCount) async* {
684 for (int i = 0; i < eventCount; i++) yield i; 685 for (int i = 0; i < eventCount; i++) yield i;
685 } 686 }
OLDNEW
« no previous file with comments | « lib/src/stream_queue.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698