Skip to content

Instantly share code, notes, and snippets.

View SilverioMG's full-sized avatar

Silverio Martinez Garcia SilverioMG

View GitHub Profile
# Use root/example as user/password credentials
version: '3.7'
services:
mongo:
image: mongo:6.0.8
container_name: mongo
restart: always
environment:
@Test
public void using_Map_and_FlatMap() {
Person personTest = personRepository.getPersonTest();
Integer stateCode = Optional.ofNullable(personTest)
.flatMap(person -> person.getOptionalAddress())
.map(address -> address.getState())
.flatMap(state -> state.getOptionalCode())
.orElseGet(() -> null);
@Test
public void using_FlatMap() {
Person personTest = personRepository.getPersonTest();
Integer addressNumber = Optional.ofNullable(personTest)
.flatMap(person -> person.getOptionalAddress())
.flatMap(address -> address.getOptionalNumber())
.orElseGet(() -> null);
assertNotNull(addressNumber);
assertEquals(addressNumber, personTest.getAddress().getNumber());
@Test
public void using_Map() {
Person personTest = personRepository.getPersonTest();
Integer addressNumber = Optional.ofNullable(personTest)
.map(person -> person.getAddress())
.map(address -> address.getNumber())
.orElseGet(() -> null);
assertNotNull(addressNumber);
assertEquals(addressNumber, personTest.getAddress().getNumber());
package net.atopecode.optionals.model;
import java.util.Optional;
public class State {
private String name;
private Integer code;
package net.atopecode.optionals.model;
import java.util.Optional;
public class Address {
private String street;
private Integer number;
package net.atopecode.optionals.model;
import java.util.Optional;
public class Person {
private String name;
private String email;
@Test
public void flatMapTest(){
Person person = personRepository.getPersonTest();
String emailWithFlatMap = Optional.ofNullable(person)
.flatMap((p -> Optional.ofNullable(p.getEmail()))) //Con 'flatMap()' hay que devolver un 'Optional<T>' con el resultado deseado.
.orElse(null);
System.out.println("Con faltMap(): " + emailWithFlatMap);
assertEquals(emailWithFlatMap, person.getEmail());
}
@Test
public void mapTest(){
Person person = personRepository.getPersonTest();
String emailWithMap = Optional.ofNullable(person)
.map(person -> person.getEmail()) //Con 'map()' se hace un wrapper del resultado 'T' dentro de un objeto 'Optional<T>' automáticamente, pero nosotros devolvemos directamente el tipo 'T'.
.orElse(null);
System.out.println("Con map(): " + emailWithMap);
assertEquals(emailWithMap, person.getEmail());
}
@Test
public void getStateField_with_StateNotNull() {
Person personWithState = personRepository.getPersonTest();
String stateName = personWithState.getAddress().getState().getName();
assertTrue(stateName != null);
String stateNameOptional = Optional.ofNullable(personWithState)
.map(person -> person.getAddress())
.map(address -> address.getState())
.map(state -> state.getName())