mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-08-09 16:24:34 +00:00
refactor: converter pattern docs and refactoring
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user