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

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

Issue 14251006: Remove AsyncError with Expando. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « tests/lib/async/futures_test.dart ('k') | tests/lib/async/stream_controller_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) 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 "package:expect/expect.dart"; 8 import "package:expect/expect.dart";
9 import 'dart:async'; 9 import 'dart:async';
10 import 'dart:isolate'; 10 import 'dart:isolate';
(...skipping 11 matching lines...) Expand all
22 })); 22 }));
23 c.add(10); 23 c.add(10);
24 c.add(32); 24 c.add(32);
25 c.close(); 25 c.close();
26 }); 26 });
27 27
28 test("StreamController.fold throws", () { 28 test("StreamController.fold throws", () {
29 StreamController c = new StreamController.broadcast(); 29 StreamController c = new StreamController.broadcast();
30 Stream stream = c.stream; 30 Stream stream = c.stream;
31 stream.fold(0, (a,b) { throw "Fnyf!"; }) 31 stream.fold(0, (a,b) { throw "Fnyf!"; })
32 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); 32 .catchError(expectAsync1((error) { Expect.equals("Fnyf!", error); }));
33 c.add(42); 33 c.add(42);
34 }); 34 });
35 } 35 }
36 36
37 testSingleController() { 37 testSingleController() {
38 test("Single-subscription StreamController.fold", () { 38 test("Single-subscription StreamController.fold", () {
39 StreamController c = new StreamController(); 39 StreamController c = new StreamController();
40 Stream stream = c.stream; 40 Stream stream = c.stream;
41 stream.fold(0, (a,b) => a + b) 41 stream.fold(0, (a,b) => a + b)
42 .then(expectAsync1((int v) { Expect.equals(42, v); })); 42 .then(expectAsync1((int v) { Expect.equals(42, v); }));
43 c.add(10); 43 c.add(10);
44 c.add(32); 44 c.add(32);
45 c.close(); 45 c.close();
46 }); 46 });
47 47
48 test("Single-subscription StreamController.fold throws", () { 48 test("Single-subscription StreamController.fold throws", () {
49 StreamController c = new StreamController(); 49 StreamController c = new StreamController();
50 Stream stream = c.stream; 50 Stream stream = c.stream;
51 stream.fold(0, (a,b) { throw "Fnyf!"; }) 51 stream.fold(0, (a,b) { throw "Fnyf!"; })
52 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e.error); })); 52 .catchError(expectAsync1((e) { Expect.equals("Fnyf!", e); }));
53 c.add(42); 53 c.add(42);
54 }); 54 });
55 55
56 test("Single-subscription StreamController subscription changes", () { 56 test("Single-subscription StreamController subscription changes", () {
57 StreamController c = new StreamController(); 57 StreamController c = new StreamController();
58 EventSink sink = c.sink; 58 EventSink sink = c.sink;
59 Stream stream = c.stream; 59 Stream stream = c.stream;
60 int counter = 0; 60 int counter = 0;
61 var subscription; 61 var subscription;
62 subscription = stream.listen((data) { 62 subscription = stream.listen((data) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 170
171 test("singleWhere", () { 171 test("singleWhere", () {
172 StreamController c = new StreamController(); 172 StreamController c = new StreamController();
173 Future f = c.stream.singleWhere((x) => (x % 9) == 0); 173 Future f = c.stream.singleWhere((x) => (x % 9) == 0);
174 f.then(expectAsync1((v) { Expect.equals(9, v); })); 174 f.then(expectAsync1((v) { Expect.equals(9, v); }));
175 sentEvents.replay(c); 175 sentEvents.replay(c);
176 }); 176 });
177 177
178 test("singleWhere 2", () { 178 test("singleWhere 2", () {
179 StreamController c = new StreamController(); 179 StreamController c = new StreamController();
180 Future f = c.stream.singleWhere((x) => (x % 3) == 0); // Matches both 9 and 87.. 180 Future f = c.stream.singleWhere((x) => (x % 3) == 0); // Matches 9 and 87..
181 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); 181 f.catchError(expectAsync1((error) { Expect.isTrue(error is StateError); }));
182 sentEvents.replay(c); 182 sentEvents.replay(c);
183 }); 183 });
184 184
185 test("first", () { 185 test("first", () {
186 StreamController c = new StreamController(); 186 StreamController c = new StreamController();
187 Future f = c.stream.first; 187 Future f = c.stream.first;
188 f.then(expectAsync1((v) { Expect.equals(7, v);})); 188 f.then(expectAsync1((v) { Expect.equals(7, v);}));
189 sentEvents.replay(c); 189 sentEvents.replay(c);
190 }); 190 });
191 191
192 test("first empty", () { 192 test("first empty", () {
193 StreamController c = new StreamController(); 193 StreamController c = new StreamController();
194 Future f = c.stream.first; 194 Future f = c.stream.first;
195 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); 195 f.catchError(expectAsync1((error) { Expect.isTrue(error is StateError); }));
196 Events emptyEvents = new Events()..close(); 196 Events emptyEvents = new Events()..close();
197 emptyEvents.replay(c); 197 emptyEvents.replay(c);
198 }); 198 });
199 199
200 test("first error", () { 200 test("first error", () {
201 StreamController c = new StreamController(); 201 StreamController c = new StreamController();
202 Future f = c.stream.first; 202 Future f = c.stream.first;
203 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); 203 f.catchError(expectAsync1((error) { Expect.equals("error", error); }));
204 Events errorEvents = new Events()..error("error")..close(); 204 Events errorEvents = new Events()..error("error")..close();
205 errorEvents.replay(c); 205 errorEvents.replay(c);
206 }); 206 });
207 207
208 test("first error 2", () { 208 test("first error 2", () {
209 StreamController c = new StreamController(); 209 StreamController c = new StreamController();
210 Future f = c.stream.first; 210 Future f = c.stream.first;
211 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); 211 f.catchError(expectAsync1((error) { Expect.equals("error", error); }));
212 Events errorEvents = new Events()..error("error")..error("error2")..close(); 212 Events errorEvents = new Events()..error("error")..error("error2")..close();
213 errorEvents.replay(c); 213 errorEvents.replay(c);
214 }); 214 });
215 215
216 test("last", () { 216 test("last", () {
217 StreamController c = new StreamController(); 217 StreamController c = new StreamController();
218 Future f = c.stream.last; 218 Future f = c.stream.last;
219 f.then(expectAsync1((v) { Expect.equals(87, v);})); 219 f.then(expectAsync1((v) { Expect.equals(87, v);}));
220 sentEvents.replay(c); 220 sentEvents.replay(c);
221 }); 221 });
222 222
223 test("last empty", () { 223 test("last empty", () {
224 StreamController c = new StreamController(); 224 StreamController c = new StreamController();
225 Future f = c.stream.last; 225 Future f = c.stream.last;
226 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); 226 f.catchError(expectAsync1((error) { Expect.isTrue(error is StateError); }));
227 Events emptyEvents = new Events()..close(); 227 Events emptyEvents = new Events()..close();
228 emptyEvents.replay(c); 228 emptyEvents.replay(c);
229 }); 229 });
230 230
231 test("last error", () { 231 test("last error", () {
232 StreamController c = new StreamController(); 232 StreamController c = new StreamController();
233 Future f = c.stream.last; 233 Future f = c.stream.last;
234 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); 234 f.catchError(expectAsync1((error) { Expect.equals("error", error); }));
235 Events errorEvents = new Events()..error("error")..close(); 235 Events errorEvents = new Events()..error("error")..close();
236 errorEvents.replay(c); 236 errorEvents.replay(c);
237 }); 237 });
238 238
239 test("last error 2", () { 239 test("last error 2", () {
240 StreamController c = new StreamController(); 240 StreamController c = new StreamController();
241 Future f = c.stream.last; 241 Future f = c.stream.last;
242 f.catchError(expectAsync1((e) { Expect.equals("error", e.error); })); 242 f.catchError(expectAsync1((error) { Expect.equals("error", error); }));
243 Events errorEvents = new Events()..error("error")..error("error2")..close(); 243 Events errorEvents = new Events()..error("error")..error("error2")..close();
244 errorEvents.replay(c); 244 errorEvents.replay(c);
245 }); 245 });
246 246
247 test("elementAt", () { 247 test("elementAt", () {
248 StreamController c = new StreamController(); 248 StreamController c = new StreamController();
249 Future f = c.stream.elementAt(2); 249 Future f = c.stream.elementAt(2);
250 f.then(expectAsync1((v) { Expect.equals(13, v);})); 250 f.then(expectAsync1((v) { Expect.equals(13, v);}));
251 sentEvents.replay(c); 251 sentEvents.replay(c);
252 }); 252 });
253 253
254 test("elementAt 2", () { 254 test("elementAt 2", () {
255 StreamController c = new StreamController(); 255 StreamController c = new StreamController();
256 Future f = c.stream.elementAt(20); 256 Future f = c.stream.elementAt(20);
257 f.catchError(expectAsync1((e) { Expect.isTrue(e.error is StateError); })); 257 f.catchError(expectAsync1((error) { Expect.isTrue(error is StateError); }));
258 sentEvents.replay(c); 258 sentEvents.replay(c);
259 }); 259 });
260 } 260 }
261 261
262 testPause() { 262 testPause() {
263 test("pause event-unpause", () { 263 test("pause event-unpause", () {
264 StreamController c = new StreamController(); 264 StreamController c = new StreamController();
265 Events actualEvents = new Events.capture(c.stream); 265 Events actualEvents = new Events.capture(c.stream);
266 Events expectedEvents = new Events(); 266 Events expectedEvents = new Events();
267 expectedEvents.add(42); 267 expectedEvents.add(42);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 completer.complete(); 362 completer.complete();
363 Expect.listEquals(expectedEvents.events, actualEvents.events); 363 Expect.listEquals(expectedEvents.events, actualEvents.events);
364 expectedEvents..add(43)..add(44)..close(); 364 expectedEvents..add(43)..add(44)..close();
365 actualEvents.onDone(expectAsync0(() { 365 actualEvents.onDone(expectAsync0(() {
366 Expect.listEquals(expectedEvents.events, actualEvents.events); 366 Expect.listEquals(expectedEvents.events, actualEvents.events);
367 })); 367 }));
368 actualEvents.resume(); 368 actualEvents.resume();
369 }); 369 });
370 } 370 }
371 371
372 class TestError { const TestError(); }
373
372 testRethrow() { 374 testRethrow() {
373 AsyncError error = new AsyncError("UNIQUE", "UNIQUE"); 375 TestError error = const TestError();
376
374 377
375 testStream(name, streamValueTransform) { 378 testStream(name, streamValueTransform) {
376 test("rethrow-$name-value", () { 379 test("rethrow-$name-value", () {
377 StreamController c = new StreamController(); 380 StreamController c = new StreamController();
378 Stream s = streamValueTransform(c.stream, (v) { throw error; }); 381 Stream s = streamValueTransform(c.stream, (v) { throw error; });
379 s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync1( 382 s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync1(
380 (AsyncError e) { Expect.identical(error, e); })); 383 (e) { Expect.identical(error, e); }));
381 c.add(null); 384 c.add(null);
382 c.close(); 385 c.close();
383 }); 386 });
384 } 387 }
385 388
386 testStreamError(name, streamErrorTransform) { 389 testStreamError(name, streamErrorTransform) {
387 test("rethrow-$name-error", () { 390 test("rethrow-$name-error", () {
388 StreamController c = new StreamController(); 391 StreamController c = new StreamController();
389 Stream s = streamErrorTransform(c.stream, (e) { throw error; }); 392 Stream s = streamErrorTransform(c.stream, (e) { throw error; });
390 s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync1( 393 s.listen((_) { Expect.fail("unexpected value"); }, onError: expectAsync1(
391 (AsyncError e) { Expect.identical(error, e); })); 394 (e) { Expect.identical(error, e); }));
392 c.addError(null); 395 c.addError(null);
393 c.close(); 396 c.close();
394 }); 397 });
395 } 398 }
396 399
397 testFuture(name, streamValueTransform) { 400 testFuture(name, streamValueTransform) {
398 test("rethrow-$name-value", () { 401 test("rethrow-$name-value", () {
399 StreamController c = new StreamController(); 402 StreamController c = new StreamController();
400 Future f = streamValueTransform(c.stream, (v) { throw error; }); 403 Future f = streamValueTransform(c.stream, (v) { throw error; });
401 f.then((v) { Expect.fail("unreachable"); }, 404 f.then((v) { Expect.fail("unreachable"); },
(...skipping 17 matching lines...) Expand all
419 testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b))); 422 testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b)));
420 } 423 }
421 424
422 main() { 425 main() {
423 testController(); 426 testController();
424 testSingleController(); 427 testSingleController();
425 testExtraMethods(); 428 testExtraMethods();
426 testPause(); 429 testPause();
427 testRethrow(); 430 testRethrow();
428 } 431 }
OLDNEW
« no previous file with comments | « tests/lib/async/futures_test.dart ('k') | tests/lib/async/stream_controller_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698