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

Side by Side Diff: packages/when/test/test_when.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
« no previous file with comments | « packages/when/pubspec.yaml ('k') | packages/which/.gitignore » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1
2 library when.test;
3
4 import 'dart:async';
5
6 import 'package:unittest/unittest.dart';
7 import 'package:when/when.dart';
8
9 main() {
10 group('when', () {
11
12 test('on non-Future callback result should call onSuccess with result, then onComplete, and return onSuccess result', () {
13 var onSuccessCalled = false;
14 var onErrorCalled = false;
15 var onCompleteCalled = false;
16 var ret = when(
17 () => 5,
18 onSuccess: (x) {
19 expect(x, 5);
20 onSuccessCalled = true;
21 return 10;
22 },
23 onError: (e) => onErrorCalled = true,
24 onComplete: () {
25 expect(onSuccessCalled, isTrue);
26 onCompleteCalled = true;
27 });
28 expect(onErrorCalled, isFalse);
29 expect(onCompleteCalled, isTrue);
30 expect(ret, 10);
31 });
32
33 test('on callback failure should call onError with error, then onComplete', () {
34 var onSuccessCalled = false;
35 var onErrorCalled = false;
36 var onCompleteCalled = false;
37 var ret = when(
38 () => throw 'e',
39 onSuccess: (_) => onSuccessCalled = true,
40 onError: (e) {
41 expect(e, 'e');
42 onErrorCalled = true;
43 },
44 onComplete: () {
45 expect(onErrorCalled, isTrue);
46 onCompleteCalled = true;
47 });
48 expect(onSuccessCalled, isFalse);
49 expect(onCompleteCalled, isTrue);
50 expect(ret, isNull);
51 });
52
53 test('should pass stack trace to onError if binary', () {
54 var onErrorCalled = false;
55 when(
56 () => throw 'e',
57 onError: (e, s) {
58 onErrorCalled = true;
59 expect(s, isNotNull);
60 });
61 expect(onErrorCalled, isTrue);
62 });
63
64 test('should throw callback error if no onError provided', () {
65 try {
66 when(
67 () => throw 'e');
68 fail('callback error was swallowed');
69 } catch (e) {
70 expect(e, 'e');
71 }
72 });
73
74 test('should just return callback result if onSuccess not provided', () {
75 expect(when(() => 5), 5);
76 });
77
78 test('should not swallow onComplete error', () {
79 try {
80 when(
81 () {},
82 onComplete: () => throw 'e');
83 fail('onComplete error was swallowed');
84 } catch (e) {
85 expect(e, 'e');
86 }
87 });
88
89 group('on Future callback result', () {
90
91 test('which succeeds should call onSuccess with result, then onComplete, a nd complete with onSuccess result', () {
92 var onSuccessCalled = false;
93 var onErrorCalled = false;
94 var onCompleteCalled = false;
95 var result = when(
96 () => new Future.value(5),
97 onSuccess: (x) {
98 expect(x, 5);
99 onSuccessCalled = true;
100 return 10;
101 },
102 onError: (e) => onErrorCalled = true,
103 onComplete: () {
104 expect(onSuccessCalled, isTrue);
105 onCompleteCalled = true;
106 });
107 expect(onSuccessCalled, isFalse);
108 expect(onCompleteCalled, isFalse);
109 expect(result, new isInstanceOf<Future>());
110 return result.then((ret) {
111 expect(onErrorCalled, isFalse);
112 expect(onCompleteCalled, isTrue);
113 expect(ret, 10);
114 });
115 });
116
117 test('which fails should call onError with error, then onComplete', () {
118 var onSuccessCalled = false;
119 var onErrorCalled = false;
120 var onCompleteCalled = false;
121 var result = when(
122 () => new Future.error('e'),
123 onSuccess: (_) => onSuccessCalled = true,
124 onError: (e) {
125 expect(e, 'e');
126 onErrorCalled = true;
127 },
128 onComplete: () {
129 onErrorCalled = true;
130 onCompleteCalled = true;
131 });
132 expect(onErrorCalled, isFalse);
133 expect(onCompleteCalled, isFalse);
134 expect(result, new isInstanceOf<Future>());
135 return result.then((ret) {
136 expect(ret, isNull);
137 expect(onSuccessCalled, isFalse);
138 expect(onCompleteCalled, isTrue);
139 });
140 });
141
142 test('should pass stack trace to onError if binary', () {
143 var onErrorCalled = false;
144 return when(
145 () => new Future.error('e'),
146 onError: (e, s) {
147 onErrorCalled = true;
148 // TODO: Why is the stack trace null?
149 // expect(s, isNotNull);
150 }).then((_) {
151 expect(onErrorCalled, isTrue);
152 });
153 });
154
155 test('should throw callback error if no onError provided', () {
156 return when(
157 () => new Future.error('e')
158 ).then((_) {
159 fail('callback error was swallowed');
160 }, onError: (e) {
161 expect(e, 'e');
162 });
163 });
164
165 test('should just return callback result if onSuccess not provided', () {
166 return when(() => new Future.value(5)).then((result) {
167 expect(result, 5);
168 });
169 });
170
171 test('should not swallow onComplete error', () {
172 return when(
173 () => new Future.value(),
174 onComplete: () => throw 'e')
175 .then((ret) {
176 fail('onComplete error was swallowed');
177 }, onError: (e) {
178 expect(e, 'e');
179 });
180 });
181
182 });
183 });
184 }
OLDNEW
« no previous file with comments | « packages/when/pubspec.yaml ('k') | packages/which/.gitignore » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698