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 |