From 266c285533417e968f36a2c61fff750618e4c733 Mon Sep 17 00:00:00 2001 From: Alessio Stalla Date: Wed, 4 Apr 2018 01:44:06 +0200 Subject: [PATCH] BAEL-1040 (#3929) * Code for BAEL-1040 * Amended code for BAEL-1040 * Amended tests for BAEL-1040 --- .../baeldung/atlassian/fugue/FugueTest.java | 50 ++++++++++++++++--- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/libraries/src/test/java/com/baeldung/atlassian/fugue/FugueTest.java b/libraries/src/test/java/com/baeldung/atlassian/fugue/FugueTest.java index d52f392217..3a1597d1fe 100644 --- a/libraries/src/test/java/com/baeldung/atlassian/fugue/FugueTest.java +++ b/libraries/src/test/java/com/baeldung/atlassian/fugue/FugueTest.java @@ -5,8 +5,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.util.NoSuchElementException; -import java.util.Optional; +import java.util.*; import java.util.function.Function; import static org.junit.Assert.*; @@ -14,10 +13,6 @@ import static io.atlassian.fugue.Unit.Unit; public class FugueTest { - @Before - public void setup() { - } - @Test public void whenSome_thenDefined() { Option some = Option.some("value"); @@ -47,7 +42,11 @@ public class FugueTest { @Test public void whenNullOption_thenSome() { - Option some = Option.some("value").map(x -> null); + Option some = Option.some("value") .map(String::toUpperCase); + + assertEquals("VALUE", some.get()); + + some = some.map(x -> null); assertNull(some.get()); some.forEach(Assert::assertNull); @@ -74,6 +73,33 @@ public class FugueTest { } @Test + public void whenOption_thenIterable() { + Option some = Option.some("value"); + Iterable strings = Iterables.concat(some, Arrays.asList("a", "b", "c")); + List stringList = new ArrayList<>(); + Iterables.addAll(stringList, strings); + + assertEquals(4, stringList.size()); + } + + @Test + public void whenOption_thenStream() { + assertEquals(0, Option.none().toStream().count()); + assertEquals(1, Option.some("value").toStream().count()); + } + + @Test + public void whenLift_thenPartialFunction() { + Function f = (Integer x) -> x > 0 ? x + 1 : null; + Function, Option> lifted = Options.lift(f); + + assertEquals(2, (long) lifted.apply(Option.some(1)).get()); + assertTrue(lifted.apply(Option.none()).isEmpty()); + assertEquals(null, lifted.apply(Option.some(0)).get()); + } + + @Test + public void whenLeft_thenEither() { Either right = Either.right("value"); Either left = Either.left(-1); @@ -92,6 +118,8 @@ public class FugueTest { assertTrue(either.isRight()); assertEquals("value", either.right().get()); + + either.right().forEach(x -> assertEquals("value", x)); } private static String decodeSQLErrorCode(Integer x) { @@ -193,4 +221,12 @@ public class FugueTest { return Unit(); } + @Test + public void whenPair_thenLeftAndRight() { + Pair pair = Pair.pair(1, "a"); + + assertEquals(1, (int) pair.left()); + assertEquals("a", pair.right()); + } + }