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

Side by Side Diff: packages/async/test/lazy_stream_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import "dart:async";
6
7 import "package:async/async.dart";
8 import "package:test/test.dart";
9
10 import "utils.dart";
11
12 main() {
13 test("disallows a null callback", () {
14 expect(() => new LazyStream(null), throwsArgumentError);
15 });
16
17 test("calls the callback when the stream is listened", () async {
18 var callbackCalled = false;
19 var stream = new LazyStream(expectAsync0(() {
20 callbackCalled = true;
21 return new Stream.empty();
22 }));
23
24 await flushMicrotasks();
25 expect(callbackCalled, isFalse);
26
27 stream.listen(null);
28 expect(callbackCalled, isTrue);
29 });
30
31 test("calls the callback when the stream is listened", () async {
32 var callbackCalled = false;
33 var stream = new LazyStream(expectAsync0(() {
34 callbackCalled = true;
35 return new Stream.empty();
36 }));
37
38 await flushMicrotasks();
39 expect(callbackCalled, isFalse);
40
41 stream.listen(null);
42 expect(callbackCalled, isTrue);
43 });
44
45 test("forwards to a synchronously-provided stream", () async {
46 var controller = new StreamController<int>();
47 var stream = new LazyStream(expectAsync0(() => controller.stream));
48
49 var events = [];
50 stream.listen(events.add);
51
52 controller.add(1);
53 await flushMicrotasks();
54 expect(events, equals([1]));
55
56 controller.add(2);
57 await flushMicrotasks();
58 expect(events, equals([1, 2]));
59
60 controller.add(3);
61 await flushMicrotasks();
62 expect(events, equals([1, 2, 3]));
63
64 controller.close();
65 });
66
67 test("forwards to an asynchronously-provided stream", () async {
68 var controller = new StreamController<int>();
69 var stream = new LazyStream(expectAsync0(() async => controller.stream));
70
71 var events = [];
72 stream.listen(events.add);
73
74 controller.add(1);
75 await flushMicrotasks();
76 expect(events, equals([1]));
77
78 controller.add(2);
79 await flushMicrotasks();
80 expect(events, equals([1, 2]));
81
82 controller.add(3);
83 await flushMicrotasks();
84 expect(events, equals([1, 2, 3]));
85
86 controller.close();
87 });
88
89 test("a lazy stream can't be listened to multiple times", () {
90 var stream = new LazyStream(expectAsync0(() => new Stream.empty()));
91 expect(stream.isBroadcast, isFalse);
92
93 stream.listen(null);
94 expect(() => stream.listen(null), throwsStateError);
95 expect(() => stream.listen(null), throwsStateError);
96 });
97
98 test("a lazy stream can't be listened to from within its callback", () {
99 var stream;
100 stream = new LazyStream(expectAsync0(() {
101 expect(() => stream.listen(null), throwsStateError);
102 return new Stream.empty();
103 }));
104 stream.listen(null);
105 });
106 }
OLDNEW
« no previous file with comments | « packages/async/test/future_group_test.dart ('k') | packages/async/test/null_stream_sink_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698