BAEL-949 java9 optional test (#1960)
This commit is contained in:
parent
98e768c863
commit
0b108e387d
@ -0,0 +1,85 @@
|
|||||||
|
package com.baeldung.java9;
|
||||||
|
|
||||||
|
public class Java9OptionalTest {
|
||||||
|
@Test
|
||||||
|
public void givenOptionalOfSome_whenToStream_thenShouldTreatItAsOneElementStream() {
|
||||||
|
//given
|
||||||
|
Optional<String> value = Optional.of("a");
|
||||||
|
|
||||||
|
//when
|
||||||
|
List<String> collect = value.stream().map(String::toUpperCase).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(collect).hasSameElementsAs(List.of("A"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenOptionalOfNone_whenToStream_thenShouldTreatItAsZeroElementStream() {
|
||||||
|
//given
|
||||||
|
Optional<String> value = Optional.empty();
|
||||||
|
|
||||||
|
//when
|
||||||
|
List<String> collect = value.stream().map(String::toUpperCase).collect(Collectors.toList());
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(collect).isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenOptional_whenPresent_thenShouldExecuteProperCallback() {
|
||||||
|
//given
|
||||||
|
Optional<String> value = Optional.of("properValue");
|
||||||
|
AtomicInteger successCounter = new AtomicInteger(0);
|
||||||
|
AtomicInteger onEmptyOptionalCounter = new AtomicInteger(0);
|
||||||
|
|
||||||
|
//when
|
||||||
|
value.ifPresentOrElse((v) -> successCounter.incrementAndGet(), onEmptyOptionalCounter::incrementAndGet);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(successCounter.get()).isEqualTo(1);
|
||||||
|
assertThat(onEmptyOptionalCounter.get()).isEqualTo(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenOptional_whenNotPresent_thenShouldExecuteProperCallback() {
|
||||||
|
//given
|
||||||
|
Optional<String> value = Optional.empty();
|
||||||
|
AtomicInteger successCounter = new AtomicInteger(0);
|
||||||
|
AtomicInteger onEmptyOptionalCounter = new AtomicInteger(0);
|
||||||
|
|
||||||
|
//when
|
||||||
|
value.ifPresentOrElse((v) -> successCounter.incrementAndGet(), onEmptyOptionalCounter::incrementAndGet);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(successCounter.get()).isEqualTo(0);
|
||||||
|
assertThat(onEmptyOptionalCounter.get()).isEqualTo(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenOptional_whenPresent_thenShouldTakeAValueFromIt() {
|
||||||
|
//given
|
||||||
|
String expected = "properValue";
|
||||||
|
Optional<String> value = Optional.of(expected);
|
||||||
|
Optional<String> defaultValue = Optional.of("default");
|
||||||
|
|
||||||
|
//when
|
||||||
|
Optional<String> result = value.or(() -> defaultValue);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(result.get()).isEqualTo(expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenOptional_whenEmpty_thenShouldTakeAValueFromOr() {
|
||||||
|
//given
|
||||||
|
String defaultString = "default";
|
||||||
|
Optional<String> value = Optional.empty();
|
||||||
|
Optional<String> defaultValue = Optional.of(defaultString);
|
||||||
|
|
||||||
|
//when
|
||||||
|
Optional<String> result = value.or(() -> defaultValue);
|
||||||
|
|
||||||
|
//then
|
||||||
|
assertThat(result.get()).isEqualTo(defaultString);
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user