| OLD | NEW |
| 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 | 7 |
| 8 import "package:async/async.dart"; | 8 import "package:async/async.dart"; |
| 9 import "package:stack_trace/stack_trace.dart"; | 9 import "package:stack_trace/stack_trace.dart"; |
| 10 import "package:test/test.dart"; | 10 import "package:test/test.dart"; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 Result<bool> result = new Result<bool>.error("BAD"); | 50 Result<bool> result = new Result<bool>.error("BAD"); |
| 51 expect(result.isValue, isFalse); | 51 expect(result.isValue, isFalse); |
| 52 expect(result.isError, isTrue); | 52 expect(result.isError, isTrue); |
| 53 ErrorResult error = result.asError; | 53 ErrorResult error = result.asError; |
| 54 expect(error.error, equals("BAD")); | 54 expect(error.error, equals("BAD")); |
| 55 expect(error.stackTrace, isNull); | 55 expect(error.stackTrace, isNull); |
| 56 }); | 56 }); |
| 57 | 57 |
| 58 test("complete with value", () { | 58 test("complete with value", () { |
| 59 Result<int> result = new ValueResult<int>(42); | 59 Result<int> result = new ValueResult<int>(42); |
| 60 Completer c = new Completer<int>(); | 60 var c = new Completer<int>(); |
| 61 c.future.then(expectAsync((int v) { expect(v, equals(42)); }), | 61 c.future.then(expectAsync((int v) { expect(v, equals(42)); }), |
| 62 onError: (e, s) { fail("Unexpected error"); }); | 62 onError: (e, s) { fail("Unexpected error"); }); |
| 63 result.complete(c); | 63 result.complete(c); |
| 64 }); | 64 }); |
| 65 | 65 |
| 66 test("complete with error", () { | 66 test("complete with error", () { |
| 67 Result<bool> result = new ErrorResult("BAD", stack); | 67 Result<bool> result = new ErrorResult("BAD", stack); |
| 68 Completer c = new Completer<bool>(); | 68 var c = new Completer<bool>(); |
| 69 c.future.then((bool v) { fail("Unexpected value $v"); }, | 69 c.future.then((bool v) { fail("Unexpected value $v"); }, |
| 70 onError: expectAsync((e, s) { | 70 onError: expectAsync((e, s) { |
| 71 expect(e, equals("BAD")); | 71 expect(e, equals("BAD")); |
| 72 expect(s, same(stack)); | 72 expect(s, same(stack)); |
| 73 })); | 73 })); |
| 74 result.complete(c); | 74 result.complete(c); |
| 75 }); | 75 }); |
| 76 | 76 |
| 77 test("add sink value", () { | 77 test("add sink value", () { |
| 78 Result<int> result = new ValueResult<int>(42); | 78 var result = new ValueResult<int>(42); |
| 79 EventSink<int> sink = new TestSink( | 79 EventSink<int> sink = new TestSink( |
| 80 onData: expectAsync((v) { expect(v, equals(42)); }) | 80 onData: expectAsync((v) { expect(v, equals(42)); }) |
| 81 ); | 81 ); |
| 82 result.addTo(sink); | 82 result.addTo(sink); |
| 83 }); | 83 }); |
| 84 | 84 |
| 85 test("add sink error", () { | 85 test("add sink error", () { |
| 86 Result<bool> result = new ErrorResult("BAD", stack); | 86 Result<bool> result = new ErrorResult("BAD", stack); |
| 87 EventSink<bool> sink = new TestSink( | 87 EventSink<bool> sink = new TestSink( |
| 88 onError: expectAsync((e, s) { | 88 onError: expectAsync((e, s) { |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 cancelOnError: true); | 182 cancelOnError: true); |
| 183 c.add(42); | 183 c.add(42); |
| 184 c.addError("BAD", stack); | 184 c.addError("BAD", stack); |
| 185 c.add(37); | 185 c.add(37); |
| 186 c.close(); | 186 c.close(); |
| 187 }); | 187 }); |
| 188 | 188 |
| 189 test("release stream", () { | 189 test("release stream", () { |
| 190 StreamController<Result<int>> c = new StreamController<Result<int>>(); | 190 StreamController<Result<int>> c = new StreamController<Result<int>>(); |
| 191 Stream<int> stream = Result.releaseStream(c.stream); | 191 Stream<int> stream = Result.releaseStream(c.stream); |
| 192 List events = [new Result<int>.value(42), | 192 var events = [new Result<int>.value(42), |
| 193 new Result<int>.error("BAD", stack), | 193 new Result<int>.error("BAD", stack), |
| 194 new Result<int>.value(37)]; | 194 new Result<int>.value(37)]; |
| 195 // Expect the data events, and an extra error event. | 195 // Expect the data events, and an extra error event. |
| 196 var expectedList = new Queue.from(events) | 196 var expectedList = new Queue.from(events) |
| 197 ..add(new Result.error("BAD2", stack)); | 197 ..add(new Result.error("BAD2", stack)); |
| 198 | 198 |
| 199 void dataListener(int v) { | 199 void dataListener(int v) { |
| 200 expect(expectedList.isEmpty, isFalse); | 200 expect(expectedList.isEmpty, isFalse); |
| 201 Result expected = expectedList.removeFirst(); | 201 Result expected = expectedList.removeFirst(); |
| 202 expect(expected.isValue, isTrue); | 202 expect(expected.isValue, isTrue); |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 void add(T value) { onData(value); } | 330 void add(T value) { onData(value); } |
| 331 void addError(error, [StackTrace stack]) { onError(error, stack); } | 331 void addError(error, [StackTrace stack]) { onError(error, stack); } |
| 332 void close() { onDone(); } | 332 void close() { onDone(); } |
| 333 | 333 |
| 334 static void _nullData(value) { fail("Unexpected sink add: $value"); } | 334 static void _nullData(value) { fail("Unexpected sink add: $value"); } |
| 335 static void _nullError(e, StackTrace s) { | 335 static void _nullError(e, StackTrace s) { |
| 336 fail("Unexpected sink addError: $e"); | 336 fail("Unexpected sink addError: $e"); |
| 337 } | 337 } |
| 338 static void _nullDone() { fail("Unepxected sink close"); } | 338 static void _nullDone() { fail("Unepxected sink close"); } |
| 339 } | 339 } |
| OLD | NEW |