optional examples (#2537)

This commit is contained in:
lor6
2017-08-31 13:06:37 +03:00
committed by Eugen
parent 2f3e36405a
commit 49acba206c
13 changed files with 583 additions and 0 deletions
@@ -0,0 +1,28 @@
package com.stackify.optional;
public class User {
private String email;
private String password;
public User(String email, String password) {
super();
this.email = email;
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
@@ -0,0 +1,41 @@
package com.stackify.optional;
import org.junit.Test;
import java.util.Optional;
import java.util.List;
import static org.junit.Assert.*;
import java.util.stream.Collectors;
public class OptionalTest {
private User user;
@Test
public void whenEmptyOptional_thenGetValueFromOr() {
User result = Optional.ofNullable(user)
.or( () -> Optional.of(new User("default","1234"))).get();
assertEquals(result.getEmail(), "default");
}
@Test
public void whenIfPresentOrElse_thenOk() {
Optional.ofNullable(user)
.ifPresentOrElse( u -> System.out.println("User is:" + u.getEmail()), () -> System.out.println("User not found"));
}
@Test
public void whenGetStream_thenOk() {
User user = new User("john@gmail.com", "1234");
List<String> emails = Optional.ofNullable(user)
.stream()
.filter(u -> u.getEmail() != null && u.getEmail().contains("@"))
.map( u -> u.getEmail())
.collect(Collectors.toList());
assertTrue(emails.size() == 1);
assertEquals(emails.get(0), user.getEmail());
}
}