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

Unified Diff: test/result_test.dart

Issue 1218813011: Add handle method to ErrorResult. (Closed) Base URL: https://github.com/dart-lang/async@master
Patch Set: Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/result.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/result_test.dart
diff --git a/test/result_test.dart b/test/result_test.dart
index 656d56383848d54e63dce84b2340c07508b35f00..848c4552db3ceb03dc5cfc38ca592f92720ab9aa 100644
--- a/test/result_test.dart
+++ b/test/result_test.dart
@@ -257,6 +257,54 @@ void main() {
new Result<Result<int>>.value(new Result<int>.value(42));
expectResult(Result.flatten(result), new Result<int>.value(42));
});
+
+ test("handle unary", () {
+ var result = new Result.error("error", stack);
+ bool called = false;
+ result.handle((error) {
+ called = true;
+ expect(error, "error");
+ });
+ expect(called, isTrue);
+ });
+
+ test("handle binary", () {
+ var result = new Result.error("error", stack);
+ bool called = false;
+ result.handle((error, stackTrace) {
+ called = true;
+ expect(error, "error");
+ expect(stackTrace, same(stack));
+ });
+ expect(called, isTrue);
+ });
+
+ test("handle unary and binary", () {
+ var result = new Result.error("error", stack);
+ bool called = false;
+ result.handle((error, [stackTrace]) {
+ called = true;
+ expect(error, "error");
+ expect(stackTrace, same(stack));
+ });
+ expect(called, isTrue);
+ });
+
+ test("handle neither unary nor binary", () {
+ var result = new Result.error("error", stack);
+ expect(() => result.handle(() => fail("unreachable")),
+ throws);
+ expect(() => result.handle((a, b, c) => fail("unreachable")),
+ throws);
+ expect(() => result.handle((a, b, {c}) => fail("unreachable")),
+ throws);
+ expect(() => result.handle((a, {b}) => fail("unreachable")),
+ throws);
+ expect(() => result.handle(({a, b}) => fail("unreachable")),
+ throws);
+ expect(() => result.handle(({a}) => fail("unreachable")),
+ throws);
+ });
}
void expectResult(Result actual, Result expected) {
« no previous file with comments | « lib/result.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698