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

Side by Side Diff: tests/lib/async/stream_transformation_broadcast_test.dart

Issue 2656503004: Revert "Remove package:unittest from some tests" (Closed)
Patch Set: Created 3 years, 10 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 | « tests/lib/async/stream_transform_test.dart ('k') | tests/lib/async/timer_cancel1_test.dart » ('j') | 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 that transformations like `map` and `where` preserve broadcast flag. 5 // Test that transformations like `map` and `where` preserve broadcast flag.
6 library stream_join_test; 6 library stream_join_test;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'event_helper.dart'; 9 import 'event_helper.dart';
10 import 'package:test/test.dart'; 10 import 'package:unittest/unittest.dart';
11 import "package:expect/expect.dart";
11 12
12 main() { 13 main() {
13 testStream("singlesub", () => new StreamController(), (c) => c.stream); 14 testStream("singlesub", () => new StreamController(), (c) => c.stream);
14 testStream("broadcast", () => new StreamController.broadcast(), 15 testStream("broadcast", () => new StreamController.broadcast(),
15 (c) => c.stream); 16 (c) => c.stream);
16 testStream("asBroadcast", () => new StreamController(), 17 testStream("asBroadcast", () => new StreamController(),
17 (c) => c.stream.asBroadcastStream()); 18 (c) => c.stream.asBroadcastStream());
18 testStream("broadcast.asBroadcast", () => new StreamController.broadcast(), 19 testStream("broadcast.asBroadcast", () => new StreamController.broadcast(),
19 (c) => c.stream.asBroadcastStream()); 20 (c) => c.stream.asBroadcastStream());
20 } 21 }
21 22
22 void testStream(String name, 23 void testStream(String name,
23 StreamController create(), 24 StreamController create(),
24 Stream getStream(controller)) { 25 Stream getStream(controller)) {
25 test("$name-map", () { 26 test("$name-map", () {
26 var c = create(); 27 var c = create();
27 var s = getStream(c); 28 var s = getStream(c);
28 Stream newStream = s.map((x) => x + 1); 29 Stream newStream = s.map((x) => x + 1);
29 expect(s.isBroadcast, equals(newStream.isBroadcast)); 30 Expect.equals(s.isBroadcast, newStream.isBroadcast);
30 newStream.single.then(expectAsync((v) { 31 newStream.single.then(expectAsync((v) {
31 expect(43, equals(v)); 32 Expect.equals(43, v);
32 })); 33 }));
33 c.add(42); 34 c.add(42);
34 c.close(); 35 c.close();
35 }); 36 });
36 test("$name-where", () { 37 test("$name-where", () {
37 var c = create(); 38 var c = create();
38 var s = getStream(c); 39 var s = getStream(c);
39 Stream newStream = s.where((x) => x.isEven); 40 Stream newStream = s.where((x) => x.isEven);
40 expect(s.isBroadcast, equals(newStream.isBroadcast)); 41 Expect.equals(s.isBroadcast, newStream.isBroadcast);
41 newStream.single.then(expectAsync((v) { 42 newStream.single.then(expectAsync((v) {
42 expect(42, equals(v)); 43 Expect.equals(42, v);
43 })); 44 }));
44 c.add(37); 45 c.add(37);
45 c.add(42); 46 c.add(42);
46 c.add(87); 47 c.add(87);
47 c.close(); 48 c.close();
48 }); 49 });
49 test("$name-handleError", () { 50 test("$name-handleError", () {
50 var c = create(); 51 var c = create();
51 var s = getStream(c); 52 var s = getStream(c);
52 Stream newStream = s.handleError((x, s) {}); 53 Stream newStream = s.handleError((x, s) {});
53 expect(s.isBroadcast, equals(newStream.isBroadcast)); 54 Expect.equals(s.isBroadcast, newStream.isBroadcast);
54 newStream.single.then(expectAsync((v) { 55 newStream.single.then(expectAsync((v) {
55 expect(42, equals(v)); 56 Expect.equals(42, v);
56 })); 57 }));
57 c.addError("BAD1"); 58 c.addError("BAD1");
58 c.add(42); 59 c.add(42);
59 c.addError("BAD2"); 60 c.addError("BAD2");
60 c.close(); 61 c.close();
61 }); 62 });
62 test("$name-expand", () { 63 test("$name-expand", () {
63 var c = create(); 64 var c = create();
64 var s = getStream(c); 65 var s = getStream(c);
65 Stream newStream = s.expand((x) => x.isEven ? [x] : []); 66 Stream newStream = s.expand((x) => x.isEven ? [x] : []);
66 expect(s.isBroadcast, equals(newStream.isBroadcast)); 67 Expect.equals(s.isBroadcast, newStream.isBroadcast);
67 newStream.single.then(expectAsync((v) { 68 newStream.single.then(expectAsync((v) {
68 expect(42, equals(v)); 69 Expect.equals(42, v);
69 })); 70 }));
70 c.add(37); 71 c.add(37);
71 c.add(42); 72 c.add(42);
72 c.add(87); 73 c.add(87);
73 c.close(); 74 c.close();
74 }); 75 });
75 test("$name-transform", () { 76 test("$name-transform", () {
76 var c = create(); 77 var c = create();
77 var s = getStream(c); 78 var s = getStream(c);
78 // TODO: find name of default transformer 79 // TODO: find name of default transformer
79 var t = new StreamTransformer.fromHandlers( 80 var t = new StreamTransformer.fromHandlers(
80 handleData: (value, EventSink sink) { sink.add(value); } 81 handleData: (value, EventSink sink) { sink.add(value); }
81 ); 82 );
82 Stream newStream = s.transform(t); 83 Stream newStream = s.transform(t);
83 expect(s.isBroadcast, equals(newStream.isBroadcast)); 84 Expect.equals(s.isBroadcast, newStream.isBroadcast);
84 newStream.single.then(expectAsync((v) { 85 newStream.single.then(expectAsync((v) {
85 expect(42, equals(v)); 86 Expect.equals(42, v);
86 })); 87 }));
87 c.add(42); 88 c.add(42);
88 c.close(); 89 c.close();
89 }); 90 });
90 test("$name-take", () { 91 test("$name-take", () {
91 var c = create(); 92 var c = create();
92 var s = getStream(c); 93 var s = getStream(c);
93 Stream newStream = s.take(1); 94 Stream newStream = s.take(1);
94 expect(s.isBroadcast, equals(newStream.isBroadcast)); 95 Expect.equals(s.isBroadcast, newStream.isBroadcast);
95 newStream.single.then(expectAsync((v) { 96 newStream.single.then(expectAsync((v) {
96 expect(42, equals(v)); 97 Expect.equals(42, v);
97 })); 98 }));
98 c.add(42); 99 c.add(42);
99 c.add(37); 100 c.add(37);
100 c.close(); 101 c.close();
101 }); 102 });
102 test("$name-takeWhile", () { 103 test("$name-takeWhile", () {
103 var c = create(); 104 var c = create();
104 var s = getStream(c); 105 var s = getStream(c);
105 Stream newStream = s.takeWhile((x) => x.isEven); 106 Stream newStream = s.takeWhile((x) => x.isEven);
106 expect(s.isBroadcast, equals(newStream.isBroadcast)); 107 Expect.equals(s.isBroadcast, newStream.isBroadcast);
107 newStream.single.then(expectAsync((v) { 108 newStream.single.then(expectAsync((v) {
108 expect(42, equals(v)); 109 Expect.equals(42, v);
109 })); 110 }));
110 c.add(42); 111 c.add(42);
111 c.add(37); 112 c.add(37);
112 c.close(); 113 c.close();
113 }); 114 });
114 test("$name-skip", () { 115 test("$name-skip", () {
115 var c = create(); 116 var c = create();
116 var s = getStream(c); 117 var s = getStream(c);
117 Stream newStream = s.skip(1); 118 Stream newStream = s.skip(1);
118 expect(s.isBroadcast, equals(newStream.isBroadcast)); 119 Expect.equals(s.isBroadcast, newStream.isBroadcast);
119 newStream.single.then(expectAsync((v) { 120 newStream.single.then(expectAsync((v) {
120 expect(42, equals(v)); 121 Expect.equals(42, v);
121 })); 122 }));
122 c.add(37); 123 c.add(37);
123 c.add(42); 124 c.add(42);
124 c.close(); 125 c.close();
125 }); 126 });
126 test("$name-skipWhile", () { 127 test("$name-skipWhile", () {
127 var c = create(); 128 var c = create();
128 var s = getStream(c); 129 var s = getStream(c);
129 Stream newStream = s.skipWhile((x) => x.isOdd); 130 Stream newStream = s.skipWhile((x) => x.isOdd);
130 expect(s.isBroadcast, equals(newStream.isBroadcast)); 131 Expect.equals(s.isBroadcast, newStream.isBroadcast);
131 newStream.single.then(expectAsync((v) { 132 newStream.single.then(expectAsync((v) {
132 expect(42, equals(v)); 133 Expect.equals(42, v);
133 })); 134 }));
134 c.add(37); 135 c.add(37);
135 c.add(42); 136 c.add(42);
136 c.close(); 137 c.close();
137 }); 138 });
138 test("$name-distinct", () { 139 test("$name-distinct", () {
139 var c = create(); 140 var c = create();
140 var s = getStream(c); 141 var s = getStream(c);
141 Stream newStream = s.distinct(); 142 Stream newStream = s.distinct();
142 expect(s.isBroadcast, equals(newStream.isBroadcast)); 143 Expect.equals(s.isBroadcast, newStream.isBroadcast);
143 newStream.single.then(expectAsync((v) { 144 newStream.single.then(expectAsync((v) {
144 expect(42, equals(v)); 145 Expect.equals(42, v);
145 })); 146 }));
146 c.add(42); 147 c.add(42);
147 c.add(42); 148 c.add(42);
148 c.close(); 149 c.close();
149 }); 150 });
150 test("$name-timeout", () { 151 test("$name-timeout", () {
151 var c = create(); 152 var c = create();
152 var s = getStream(c); 153 var s = getStream(c);
153 Stream newStream = s.timeout(const Duration(seconds: 1)); 154 Stream newStream = s.timeout(const Duration(seconds: 1));
154 expect(s.isBroadcast, equals(newStream.isBroadcast)); 155 Expect.equals(s.isBroadcast, newStream.isBroadcast);
155 newStream.single.then(expectAsync((v) { 156 newStream.single.then(expectAsync((v) {
156 expect(42, equals(v)); 157 Expect.equals(42, v);
157 })); 158 }));
158 c.add(42); 159 c.add(42);
159 c.close(); 160 c.close();
160 }); 161 });
161 test("$name-asyncMap", () { 162 test("$name-asyncMap", () {
162 var c = create(); 163 var c = create();
163 var s = getStream(c); 164 var s = getStream(c);
164 Stream newStream = s.asyncMap((x) => new Future.value(x + 1)); 165 Stream newStream = s.asyncMap((x) => new Future.value(x + 1));
165 expect(s.isBroadcast, equals(newStream.isBroadcast)); 166 Expect.equals(s.isBroadcast, newStream.isBroadcast);
166 newStream.single.then(expectAsync((v) { 167 newStream.single.then(expectAsync((v) {
167 expect(43, equals(v)); 168 Expect.equals(43, v);
168 })); 169 }));
169 c.add(42); 170 c.add(42);
170 c.close(); 171 c.close();
171 }); 172 });
172 test("$name-asyncExpand", () { 173 test("$name-asyncExpand", () {
173 var c = create(); 174 var c = create();
174 var s = getStream(c); 175 var s = getStream(c);
175 Stream newStream = s.asyncExpand((x) => new Stream.fromIterable([x + 1])); 176 Stream newStream = s.asyncExpand((x) => new Stream.fromIterable([x + 1]));
176 expect(s.isBroadcast, equals(newStream.isBroadcast)); 177 Expect.equals(s.isBroadcast, newStream.isBroadcast);
177 newStream.single.then(expectAsync((v) { 178 newStream.single.then(expectAsync((v) {
178 expect(43, equals(v)); 179 Expect.equals(43, v);
179 })); 180 }));
180 c.add(42); 181 c.add(42);
181 c.close(); 182 c.close();
182 }); 183 });
183 184
184 // The following tests are only on broadcast streams, they require listening 185 // The following tests are only on broadcast streams, they require listening
185 // more than once. 186 // more than once.
186 if (name.startsWith("singlesub")) return; 187 if (name.startsWith("singlesub")) return;
187 188
188 test("$name-skip-multilisten", () { 189 test("$name-skip-multilisten", () {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 scheduleMicrotask(loop); 315 scheduleMicrotask(loop);
315 }); 316 });
316 317
317 test("$name-takeWhile-multilisten", () { 318 test("$name-takeWhile-multilisten", () {
318 var c = create(); 319 var c = create();
319 var s = getStream(c); 320 var s = getStream(c);
320 Stream newStream = s.takeWhile((x) => (x % 10) != 5); 321 Stream newStream = s.takeWhile((x) => (x % 10) != 5);
321 // Listen immediately, to ensure that an asBroadcast stream is started. 322 // Listen immediately, to ensure that an asBroadcast stream is started.
322 var sub = newStream.listen((_){}); 323 var sub = newStream.listen((_){});
323 int i = 0; 324 int i = 0;
324 // Non-overlapping ranges means the test must not remember its first 325 // Non-overlapping ranges means the test must not remember its first
325 // failure. 326 // failure.
326 var expect1 = 6; 327 var expect1 = 6;
327 var expect2 = 16; 328 var expect2 = 16;
328 var handler2 = expectAsync((v) { 329 var handler2 = expectAsync((v) {
329 expect(v, expect2); 330 expect(v, expect2);
330 expect(v <= 25, isTrue); 331 expect(v <= 25, isTrue);
331 expect2++; 332 expect2++;
332 }, count: 9); 333 }, count: 9);
333 var handler1 = expectAsync((v) { 334 var handler1 = expectAsync((v) {
334 expect(v, expect1); 335 expect(v, expect1);
(...skipping 17 matching lines...) Expand all
352 if (i < 25) { 353 if (i < 25) {
353 scheduleMicrotask(loop); 354 scheduleMicrotask(loop);
354 } else { 355 } else {
355 sub.cancel(); 356 sub.cancel();
356 c.close(); 357 c.close();
357 } 358 }
358 }, count: 25); 359 }, count: 25);
359 scheduleMicrotask(loop); 360 scheduleMicrotask(loop);
360 }); 361 });
361 } 362 }
OLDNEW
« no previous file with comments | « tests/lib/async/stream_transform_test.dart ('k') | tests/lib/async/timer_cancel1_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698