forked from java8/Java8InAction
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOptionalTest.java
More file actions
84 lines (68 loc) · 2.35 KB
/
Copy pathOptionalTest.java
File metadata and controls
84 lines (68 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package lambdasinaction.chap10;
import org.junit.Test;
import java.util.Arrays;
import java.util.Optional;
import java.util.Set;
import static org.junit.Assert.*;
public class OptionalTest {
@Test
public void getCarInsuranceNameWithEmptyPerson() {
OptionalMain main = new OptionalMain();
String result = main.getCarInsuranceName(Optional.empty());
assertEquals("Unknown", result);
}
@Test
public void optionalOfNullable() {
Optional<String> opt = Optional.ofNullable(null);
assertFalse(opt.isPresent());
Optional<String> present = Optional.ofNullable("hello");
assertTrue(present.isPresent());
assertEquals("hello", present.get());
}
@Test
public void optionalMap() {
Optional<String> name = Optional.of("Java");
Optional<Integer> len = name.map(String::length);
assertEquals(Integer.valueOf(4), len.get());
}
@Test
public void optionalFlatMap() {
Optional<Optional<String>> nested = Optional.of(Optional.of("nested"));
Optional<String> flat = nested.flatMap(x -> x);
assertEquals("nested", flat.get());
}
@Test
public void optionalOrElse() {
Optional<String> empty = Optional.empty();
assertEquals("default", empty.orElse("default"));
Optional<String> present = Optional.of("value");
assertEquals("value", present.orElse("default"));
}
@Test
public void optionalFilter() {
Optional<String> opt = Optional.of("hello");
assertTrue(opt.filter(s -> s.startsWith("h")).isPresent());
assertFalse(opt.filter(s -> s.startsWith("z")).isPresent());
}
@Test
public void optionalIfPresent() {
Optional<String> opt = Optional.of("test");
StringBuilder sb = new StringBuilder();
opt.ifPresent(sb::append);
assertEquals("test", sb.toString());
}
@Test
public void optionalStream() {
Optional<String> present = Optional.of("value");
long count = present.stream().count();
assertEquals(1, count);
Optional<String> empty = Optional.empty();
long emptyCount = empty.stream().count();
assertEquals(0, emptyCount);
}
@Test
public void insuranceNameAccess() {
Insurance insurance = new Insurance();
assertNull(insurance.getName());
}
}