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

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

Issue 25354003: Redo StreamTransformers so they work with Stack traces. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 2 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
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 library stream_event_transform_test;
6
7 import "package:expect/expect.dart";
8 import 'dart:async';
9 import '../../../pkg/unittest/lib/unittest.dart';
10 import 'event_helper.dart';
11
12 void handleData(int data, EventSink<int> sink) {
13 sink.addError("$data");
14 sink.add(data + 1);
15 }
16
17 void handleError(error, EventSink<int> sink) {
18 String value = error;
19 int data = int.parse(value);
20 sink.add(data);
21 sink.addError("${data + 1}");
22 }
23
24 void handleDone(EventSink<int> sink) {
25 sink.add(99);
26 sink.close();
27 }
28
29 class EventTransformer extends StreamEventTransformer<int,int> {
30 void handleData(int data, EventSink<int> sink) {
31 sink.addError("$data");
32 sink.add(data + 1);
33 }
34
35 void handleError(String value, EventSink<int> sink) {
36 int data = int.parse(value);
37 sink.add(data);
38 sink.addError("${data + 1}");
39 }
40
41 void handleDone(EventSink<int> sink) {
42 sink.add(99);
43 sink.close();
44 }
45 }
46
47 main() {
48 {
49 StreamController c = new StreamController(sync: true);
50 Events expected = new Events()..error("0")..add(1)
51 ..error("1")..add(2)
52 ..add(3)..error("4")
53 ..add(99)..close();
54 Events input = new Events()..add(0)..add(1)..error("3")..close();
55 Events actual = new Events.capture(
56 c.stream.transform(new EventTransformer()));
57 actual.onDone(() {
58 Expect.listEquals(expected.events, actual.events);
59 });
60 input.replay(c);
61 }
62
63 {
64 StreamController c = new StreamController(sync: true);
65 Events expected = new Events()..error("0")..add(1)
66 ..error("1")..add(2)
67 ..add(3)..error("4")
68 ..add(99)..close();
69 Events input = new Events()..add(0)..add(1)..error("3")..close();
70 Events actual = new Events.capture(
71 c.stream.transform(new StreamTransformer(
72 handleData: handleData,
73 handleError: handleError,
74 handleDone: handleDone
75 )));
76 actual.onDone(() {
77 Expect.listEquals(expected.events, actual.events);
78 });
79 input.replay(c);
80 }
81 }
OLDNEW
« no previous file with comments | « tests/lib/async/stream_controller_test.dart ('k') | tests/lib/async/stream_event_transformed_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698