From e422edadd08886a3b1173f9339c063e5184c82a1 Mon Sep 17 00:00:00 2001 From: Grzegorz Piwowarek Date: Sun, 9 Jul 2017 12:28:04 +0200 Subject: [PATCH] Either refactor (#2237) --- .../com/baeldung/vavr/either/EitherDemo.java | 57 +------------------ .../vavr/PatternMatchingUnitTest.java | 6 +- .../baeldung/vavr/either/EitherUnitTest.java | 16 ++++-- 3 files changed, 15 insertions(+), 64 deletions(-) diff --git a/vavr/src/main/java/com/baeldung/vavr/either/EitherDemo.java b/vavr/src/main/java/com/baeldung/vavr/either/EitherDemo.java index 38df03980f..95f8191342 100644 --- a/vavr/src/main/java/com/baeldung/vavr/either/EitherDemo.java +++ b/vavr/src/main/java/com/baeldung/vavr/either/EitherDemo.java @@ -18,7 +18,7 @@ public class EitherDemo { } public static Map computeWithoutEitherUsingMap(int marks) { - Map results = new HashMap(); + Map results = new HashMap<>(); if (marks < 85) { results.put("FAILURE", "Marks not acceptable"); } else { @@ -27,64 +27,11 @@ public class EitherDemo { return results; } - public static Either computeWithEither(int marks) { + static Either computeWithEither(int marks) { if (marks < 85) { return Either.left("Marks not acceptable"); } else { return Either.right(marks); } } - - public static String getError(Either result) { - return result.getLeft(); - } - - public static int getMarks(Either result) { - return result.get(); - } - - public static int getModifiedMarks(Either result) { - result = result.right().map(i -> i * 2).toEither(); - return result.get(); - } - - public void utilities() { - - String error; - int marks; - - Either result = computeWithEither(100); - - result.toArray(); - result.toCharSeq(); - result.toLinkedSet(); - result.toList(); - result.toOption(); - result.toPriorityQueue(); - result.iterator(); - result.toVector(); - result.toTree(); - result.toStream(); - - result.toJavaArray(); - result.toJavaList(); - result.toJavaOptional(); - result.toJavaParallelStream(); - result.toJavaSet(); - result.toJavaStream(); - result.toJavaList(); - - Either.RightProjection projection = computeWithEither(9).right(); - - result.contains(800); - result.isLeft(); - result.isRight(); - - if (result.isLeft()) { - error = result.getLeft(); - } else { - marks = result.get(); - } - } - } diff --git a/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java b/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java index ef5afe0e29..1adff2e845 100644 --- a/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java +++ b/vavr/src/test/java/com/baeldung/vavr/PatternMatchingUnitTest.java @@ -100,13 +100,11 @@ public class PatternMatchingUnitTest { }))); } - - - public void displayEven() { + private void displayEven() { System.out.println("Input is even"); } - public void displayOdd() { + private void displayOdd() { System.out.println("Input is odd"); } } diff --git a/vavr/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java b/vavr/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java index 90cd1ace35..6b0a34f9e4 100644 --- a/vavr/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java +++ b/vavr/src/test/java/com/baeldung/vavr/either/EitherUnitTest.java @@ -1,8 +1,7 @@ package com.baeldung.vavr.either; -import org.junit.Test; - import io.vavr.control.Either; +import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -11,21 +10,28 @@ public class EitherUnitTest { @Test public void givenMarks_whenPassNumber_thenExpectNumber() { Either result = EitherDemo.computeWithEither(100); - int marks = EitherDemo.getMarks(result); + int marks = result.right() + .getOrElseThrow(x -> new IllegalStateException()); + assertEquals(100, marks); } @Test public void givenMarks_whenFailNumber_thenExpectErrorMesssage() { Either result = EitherDemo.computeWithEither(50); - String error = EitherDemo.getError(result); + String error = result.left() + .getOrNull(); + assertEquals("Marks not acceptable", error); } @Test public void givenPassMarks_whenModified_thenExpectNumber() { Either result = EitherDemo.computeWithEither(90); - int marks = EitherDemo.getModifiedMarks(result); + int marks = result.right() + .map(x -> x * 2) + .get(); + assertEquals(180, marks); }