|
3 | 3 | import com.google.common.testing.EqualsTester; |
4 | 4 | import org.junit.jupiter.api.Test; |
5 | 5 |
|
| 6 | +import java.io.IOException; |
| 7 | +import java.util.List; |
| 8 | +import java.util.NoSuchElementException; |
| 9 | +import java.util.stream.Collectors; |
| 10 | + |
6 | 11 | 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; |
7 | 15 |
|
8 | 16 | class LeftOptionalTest { |
9 | 17 |
|
@@ -74,4 +82,69 @@ void testOr() { |
74 | 82 | assertEquals(LeftOptional.of("2"), LeftOptional.empty().or(() -> LeftOptional.of("2"))); |
75 | 83 | assertEquals(LeftOptional.empty(), LeftOptional.empty().or(LeftOptional::empty)); |
76 | 84 | } |
| 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 | + } |
77 | 150 | } |
0 commit comments