diff options
author | cchantep <chantepie@altern.org> | 2014-10-29 17:25:01 +0100 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2015-04-07 16:28:43 -0700 |
commit | f10dcc76dff4aa9146cd1ec4052fe136f597a260 (patch) | |
tree | 80a69dfd9ddf9b4f246d1b475c832825de0c9eb5 /test/files/jvm | |
parent | 293625e7bb685514ce82a0400bbd7ba5708d6553 (diff) | |
download | scala-f10dcc76dff4aa9146cd1ec4052fe136f597a260.tar.gz scala-f10dcc76dff4aa9146cd1ec4052fe136f597a260.tar.bz2 scala-f10dcc76dff4aa9146cd1ec4052fe136f597a260.zip |
SI-8336: add `fold` & `toEither` to `util.Try`
`res.fold(fa, fb)` evaluates to `fa(e)` if `res` is a `Failure(e)`,
or `fb(value)` if `res` is a `Success(value)`.
(If `fb` throws an exception `e` when applied, `fa(e)`.)
Diffstat (limited to 'test/files/jvm')
-rw-r--r-- | test/files/jvm/try-type-tests.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/files/jvm/try-type-tests.scala b/test/files/jvm/try-type-tests.scala index 962afbd30f..b3926020f0 100644 --- a/test/files/jvm/try-type-tests.scala +++ b/test/files/jvm/try-type-tests.scala @@ -118,6 +118,44 @@ trait TryStandard { assert(f.transform(succ, fail).get == 0) } + def testSuccessEither(): Unit = { + val t = Success(1) + assert(t.toEither.isRight) + } + + def testFailureEither(): Unit = { + val t = Failure(new Exception("foo")) + assert(t.toEither.isLeft) + } + + def testFoldSuccess(): Unit = { + val t = Success(1) + val res = t.fold("Throws " + _, "Returns " + _) + assert(res == "Returns 1") + } + + def testFoldFailure(): Unit = { + val t = Failure(new Exception("foo")) + val res = t.fold("Throws " + _, "Returns " + _) + assert(res == "Throws java.lang.Exception: foo") + } + + def testFoldSuccessFailure(): Unit = { + val t = Success(1) + val res = t.fold("Throws " + _, _ => throw new Exception("foo")) + assert(res == "Throws java.lang.Exception: foo") + } + + def testFoldFailureFailure(): Unit = { + val t = Failure(new Exception("foo")) + val res = try { + t.fold(_ => throw new Exception("bar"), "Returns " + _) + } catch { + case e: Throwable => "Throws " + e + } + assert(res == "Throws java.lang.Exception: bar") + } + testForeachSuccess() testForeachFailure() testFlatMapSuccess() @@ -136,6 +174,11 @@ trait TryStandard { testFailedFailure() testSuccessTransform() testFailureTransform() + testSuccessEither() + testFailureEither() + testFoldSuccess() + testFoldFailure() + testFoldSuccessFailure() } object Test |