BAEL-7176: How to avoid NoSuchElementException with Stream (#15098)
This commit is contained in:
parent
89fe63903f
commit
2133e9b5db
@ -0,0 +1,62 @@
|
|||||||
|
package com.baeldung.nosuchelementexception;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class NoSuchElementExceptionStreamUnitTest {
|
||||||
|
|
||||||
|
@Test(expected = NoSuchElementException.class)
|
||||||
|
public void givenEmptyOptional_whenCallingGetMethod_thenThrowNoSuchElementException() {
|
||||||
|
List<String> names = List.of("William", "Amelia", "Albert", "Philip");
|
||||||
|
Optional<String> emptyOptional = names.stream()
|
||||||
|
.filter(name -> name.equals("Emma"))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
emptyOptional.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEmptyOptional_whenUsingIsPresentMethod_thenReturnDefault() {
|
||||||
|
List<String> names = List.of("Tyler", "Amelia", "James", "Emma");
|
||||||
|
Optional<String> emptyOptional = names.stream()
|
||||||
|
.filter(name -> name.equals("Lucas"))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
String name = "unknown";
|
||||||
|
if (emptyOptional.isPresent()) {
|
||||||
|
name = emptyOptional.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals("unknown", name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEmptyOptional_whenUsingOrElseMethod_thenReturnDefault() {
|
||||||
|
List<String> names = List.of("Nicholas", "Justin", "James");
|
||||||
|
Optional<String> emptyOptional = names.stream()
|
||||||
|
.filter(name -> name.equals("Lucas"))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
String name = emptyOptional.orElse("unknown");
|
||||||
|
|
||||||
|
assertEquals("unknown", name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEmptyOptional_whenUsingOrElseGetMethod_thenReturnDefault() {
|
||||||
|
List<String> names = List.of("Thomas", "Catherine", "David", "Olivia");
|
||||||
|
Optional<String> emptyOptional = names.stream()
|
||||||
|
.filter(name -> name.equals("Liam"))
|
||||||
|
.findFirst();
|
||||||
|
|
||||||
|
String name = emptyOptional.orElseGet(() -> "unknown");
|
||||||
|
|
||||||
|
assertEquals("unknown", name);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user