refactor: converter pattern docs and refactoring

This commit is contained in:
Ilkka Seppälä
2024-04-06 10:43:40 +03:00
parent 20e804ba95
commit 8f777cdc98
6 changed files with 87 additions and 93 deletions
@@ -24,21 +24,7 @@
*/
package com.iluwatar.converter;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
/**
* User class.
* User record.
*/
@ToString
@EqualsAndHashCode
@Getter
@RequiredArgsConstructor
public class User {
private final String firstName;
private final String lastName;
private final boolean active;
private final String userId;
}
public record User(String firstName, String lastName, boolean active, String userId) {}
@@ -34,11 +34,10 @@ public class UserConverter extends Converter<UserDto, User> {
}
private static UserDto convertToDto(User user) {
return new UserDto(user.getFirstName(), user.getLastName(), user.isActive(), user.getUserId());
return new UserDto(user.firstName(), user.lastName(), user.active(), user.userId());
}
private static User convertToEntity(UserDto dto) {
return new User(dto.getFirstName(), dto.getLastName(), dto.isActive(), dto.getEmail());
return new User(dto.firstName(), dto.lastName(), dto.active(), dto.email());
}
}
@@ -24,23 +24,7 @@
*/
package com.iluwatar.converter;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
/**
* User DTO class.
* UserDto record.
*/
@RequiredArgsConstructor
@Getter
@EqualsAndHashCode
@ToString
public class UserDto {
private final String firstName;
private final String lastName;
private final boolean active;
private final String email;
}
public record UserDto(String firstName, String lastName, boolean active, String email) {}
@@ -35,7 +35,6 @@ class AppTest {
/**
* Issue: Add at least one assertion to this test case.
*
* Solution: Inserted assertion to check whether the execution of the main method in {@link App#main(String[])}
* throws an exception.
*/
@@ -65,20 +65,20 @@ class ConverterTest {
void testCustomConverter() {
var converter = new Converter<UserDto, User>(
userDto -> new User(
userDto.getFirstName(),
userDto.getLastName(),
userDto.isActive(),
userDto.firstName(),
userDto.lastName(),
userDto.active(),
String.valueOf(new Random().nextInt())
),
user -> new UserDto(
user.getFirstName(),
user.getLastName(),
user.isActive(),
user.getFirstName().toLowerCase() + user.getLastName().toLowerCase() + "@whatever.com")
user.firstName(),
user.lastName(),
user.active(),
user.firstName().toLowerCase() + user.lastName().toLowerCase() + "@whatever.com")
);
var u1 = new User("John", "Doe", false, "12324");
var userDto = converter.convertFromEntity(u1);
assertEquals("johndoe@whatever.com", userDto.getEmail());
assertEquals("johndoe@whatever.com", userDto.email());
}
/**