diff --git a/src/main/java/eu/ztsh/wymiana/util/CurrencyMapper.java b/src/main/java/eu/ztsh/wymiana/util/CurrencyMapper.java new file mode 100644 index 0000000..7542187 --- /dev/null +++ b/src/main/java/eu/ztsh/wymiana/util/CurrencyMapper.java @@ -0,0 +1,24 @@ +package eu.ztsh.wymiana.util; + +import eu.ztsh.wymiana.data.entity.CurrencyEntity; +import eu.ztsh.wymiana.model.Currency; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class CurrencyMapper { + + public static Currency entityToPojo(CurrencyEntity entity) { + return new Currency(entity.getSymbol(), entity.getAmount()); + } + + public static Map entitiesToPojoMap(List values) { + return values.stream().map(CurrencyMapper::entityToPojo) + .collect(Collectors.toMap(Currency::symbol, pojo -> pojo)); + } + + private CurrencyMapper() { + } + +} diff --git a/src/main/java/eu/ztsh/wymiana/util/UserMapper.java b/src/main/java/eu/ztsh/wymiana/util/UserMapper.java new file mode 100644 index 0000000..ea744f4 --- /dev/null +++ b/src/main/java/eu/ztsh/wymiana/util/UserMapper.java @@ -0,0 +1,16 @@ +package eu.ztsh.wymiana.util; + +import eu.ztsh.wymiana.data.entity.UserEntity; +import eu.ztsh.wymiana.model.User; + +public class UserMapper { + + public static User entityToPojo(UserEntity entity) { + return new User(entity.getName(), entity.getSurname(), entity.getPesel(), + CurrencyMapper.entitiesToPojoMap(entity.getCurrencies())); + } + + private UserMapper() { + } + +} diff --git a/src/test/java/eu/ztsh/wymiana/util/UserMapperTest.java b/src/test/java/eu/ztsh/wymiana/util/UserMapperTest.java new file mode 100644 index 0000000..7b97107 --- /dev/null +++ b/src/test/java/eu/ztsh/wymiana/util/UserMapperTest.java @@ -0,0 +1,28 @@ +package eu.ztsh.wymiana.util; + +import eu.ztsh.wymiana.EntityCreator; +import eu.ztsh.wymiana.model.Currency; +import eu.ztsh.wymiana.model.User; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +class UserMapperTest { + + @Test + void entityToPojoTest() { + var entity = EntityCreator.user().build(); + var expected = new User( + EntityCreator.Constants.NAME, + EntityCreator.Constants.SURNAME, + EntityCreator.Constants.PESEL, + Map.of("PLN", new Currency("PLN", EntityCreator.Constants.PLN)) + ); + assertThat(UserMapper.entityToPojo(entity)) + .usingRecursiveComparison() + .isEqualTo(expected); + } + +}