Skip to content

Commit d7b7e72

Browse files
committed
use java util Optional
1 parent aaa434a commit d7b7e72

File tree

8 files changed

+78
-390
lines changed

8 files changed

+78
-390
lines changed

src/main/java/io/jbock/util/Either.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.jbock.util;
22

33
import java.util.List;
4+
import java.util.Optional;
45
import java.util.function.Consumer;
56
import java.util.function.Function;
67
import java.util.stream.Collector;

src/main/java/io/jbock/util/Left.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.jbock.util;
22

33
import java.util.Objects;
4+
import java.util.Optional;
45
import java.util.function.Function;
56

67
final class Left<L, R> extends Either<L, R> {

src/main/java/io/jbock/util/Optional.java

Lines changed: 0 additions & 226 deletions
This file was deleted.

src/main/java/io/jbock/util/Right.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.jbock.util;
22

33
import java.util.Objects;
4+
import java.util.Optional;
45
import java.util.function.Function;
56

67
final class Right<L, R> extends Either<L, R> {

src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
*/
44
module io.jbock.util {
55

6-
exports io.jbock.util;
6+
exports io.jbock.util;
77
}

src/test/java/io/jbock/util/EitherTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.io.IOException;
77
import java.util.Objects;
8+
import java.util.Optional;
89

910
import static org.junit.jupiter.api.Assertions.assertEquals;
1011
import static org.junit.jupiter.api.Assertions.assertFalse;

src/test/java/io/jbock/util/LeftOptionalTest.java

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,15 @@
33
import com.google.common.testing.EqualsTester;
44
import org.junit.jupiter.api.Test;
55

6+
import java.io.IOException;
7+
import java.util.List;
8+
import java.util.NoSuchElementException;
9+
import java.util.stream.Collectors;
10+
611
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertFalse;
13+
import static org.junit.jupiter.api.Assertions.assertThrows;
14+
import static org.junit.jupiter.api.Assertions.assertTrue;
715

816
class LeftOptionalTest {
917

@@ -74,4 +82,69 @@ void testOr() {
7482
assertEquals(LeftOptional.of("2"), LeftOptional.empty().or(() -> LeftOptional.of("2")));
7583
assertEquals(LeftOptional.empty(), LeftOptional.empty().or(LeftOptional::empty));
7684
}
85+
86+
@Test
87+
void testIsPresent() {
88+
assertTrue(LeftOptional.of("1").isPresent());
89+
assertFalse(LeftOptional.empty().isPresent());
90+
}
91+
92+
@Test
93+
void testIsEmpty() {
94+
assertFalse(LeftOptional.of("1").isEmpty());
95+
assertTrue(LeftOptional.empty().isEmpty());
96+
}
97+
98+
@Test
99+
void testIfPresent() {
100+
String[] output = {"1"};
101+
LeftOptional.of("1").ifPresent(t -> output[0] = "Y");
102+
assertEquals("Y", output[0]);
103+
LeftOptional.empty().ifPresent(t -> output[0] = "N");
104+
assertEquals("Y", output[0]);
105+
}
106+
107+
@Test
108+
void testIfPresentOrElse() {
109+
String[] output1 = {"1"};
110+
String[] output2 = {"1"};
111+
LeftOptional.of("1").ifPresentOrElse(t -> output1[0] = "Y", () -> output2[0] = "N");
112+
assertEquals("Y", output1[0]);
113+
assertEquals("1", output2[0]);
114+
LeftOptional.empty().ifPresentOrElse(t -> output1[0] = "A", () -> output2[0] = "Z");
115+
assertEquals("Y", output1[0]);
116+
assertEquals("Z", output2[0]);
117+
}
118+
119+
@Test
120+
void testStream() {
121+
assertEquals(List.of("1"), LeftOptional.of("1").stream().collect(Collectors.toList()));
122+
assertEquals(List.of(), LeftOptional.empty().stream().collect(Collectors.toList()));
123+
}
124+
125+
@Test
126+
void testOrElse() {
127+
assertEquals("1", LeftOptional.of("1").orElse("2"));
128+
assertEquals("2", LeftOptional.empty().orElse("2"));
129+
}
130+
131+
@Test
132+
void testOrElseGet() {
133+
assertEquals("1", LeftOptional.of("1").orElseGet(() -> "2"));
134+
assertEquals("2", LeftOptional.empty().orElseGet(() -> "2"));
135+
}
136+
137+
@Test
138+
void testOrElseThrow() {
139+
Exception x = assertThrows(NoSuchElementException.class, () -> LeftOptional.empty().orElseThrow());
140+
assertEquals("No value present", x.getMessage());
141+
assertEquals("2", LeftOptional.of("2").orElseThrow());
142+
}
143+
144+
@Test
145+
void testOrElseThrowWithSupplier() throws IOException {
146+
Exception x = assertThrows(IOException.class, () -> LeftOptional.empty().orElseThrow(() -> new IOException("1")));
147+
assertEquals("1", x.getMessage());
148+
assertEquals("2", LeftOptional.of("2").orElseThrow(() -> new IOException("1")));
149+
}
77150
}

0 commit comments

Comments
 (0)