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

Side by Side Diff: pkg/async/test/result_test.dart

Issue 297033002: Add Result.flatten. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Making factory properly factory. Created 6 years, 7 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
« pkg/async/pubspec.yaml ('K') | « pkg/async/pubspec.yaml ('k') | no next file » | 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 import "dart:async"; 5 import "dart:async";
6 import "dart:collection"; 6 import "dart:collection";
7 import "package:async/result.dart"; 7 import "package:async/result.dart";
8 import "package:unittest/unittest.dart"; 8 import "package:unittest/unittest.dart";
9 9
10 void main() { 10 void main() {
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 expect(e, equals("BAD")); 224 expect(e, equals("BAD"));
225 expect(s, same(stack)); 225 expect(s, same(stack));
226 }), 226 }),
227 onDone: () { fail("Unexpected done event"); }, 227 onDone: () { fail("Unexpected done event"); },
228 cancelOnError: true); 228 cancelOnError: true);
229 c.add(new Result.value(42)); 229 c.add(new Result.value(42));
230 c.add(new Result.error("BAD", stack)); 230 c.add(new Result.error("BAD", stack));
231 c.add(new Result.value(37)); 231 c.add(new Result.value(37));
232 c.close(); 232 c.close();
233 }); 233 });
234
235
236 test("flatten error 1", () {
237 Result<int> error = new Result<int>.error("BAD", stack);
238 Result<int> flattened = Result.flatten(error);
239 expectResult(flattened, error);
240 });
241
242 test("flatten error 2", () {
243 Result<int> error = new Result<int>.error("BAD", stack);
244 Result<Result<int>> result = new Result<Result<int>>.value(error);
245 Result<int> flattened = Result.flatten(result);
246 expectResult(flattened, error);
247 });
248
249 test("flatten value", () {
250 Result<Result<int>> result =
251 new Result<Result<int>>.value(new Result<int>.value(42));
252 expectResult(Result.flatten(result), new Result<int>.value(42));
253 });
234 } 254 }
235 255
236 void expectResult(Result actual, Result expected) { 256 void expectResult(Result actual, Result expected) {
237 expect(actual.isValue, equals(expected.isValue)); 257 expect(actual.isValue, equals(expected.isValue));
238 expect(actual.isError, equals(expected.isError)); 258 expect(actual.isError, equals(expected.isError));
239 if (actual.isValue) { 259 if (actual.isValue) {
240 expect(actual.asValue.value, equals(expected.asValue.value)); 260 expect(actual.asValue.value, equals(expected.asValue.value));
241 } else { 261 } else {
242 expect(actual.asError.error, equals(expected.asError.error)); 262 expect(actual.asError.error, equals(expected.asError.error));
243 expect(actual.asError.stackTrace, same(expected.asError.stackTrace)); 263 expect(actual.asError.stackTrace, same(expected.asError.stackTrace));
(...skipping 12 matching lines...) Expand all
256 void add(T value) { onData(value); } 276 void add(T value) { onData(value); }
257 void addError(error, [StackTrace stack]) { onError(error, stack); } 277 void addError(error, [StackTrace stack]) { onError(error, stack); }
258 void close() { onDone(); } 278 void close() { onDone(); }
259 279
260 static void _nullData(value) { Expect.fail("Unexpected sink add: $value"); } 280 static void _nullData(value) { Expect.fail("Unexpected sink add: $value"); }
261 static void _nullError(e, StackTrace s) { 281 static void _nullError(e, StackTrace s) {
262 Expect.fail("Unexpected sink addError: $e"); 282 Expect.fail("Unexpected sink addError: $e");
263 } 283 }
264 static void _nullDone() { Expect.fail("Unepxected sink close"); } 284 static void _nullDone() { Expect.fail("Unepxected sink close"); }
265 } 285 }
OLDNEW
« pkg/async/pubspec.yaml ('K') | « pkg/async/pubspec.yaml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698