From 57d4311fb38faf3880222a598b88b6ab67cd7a97 Mon Sep 17 00:00:00 2001 From: kyeonkim <108860425+kyeonkim@users.noreply.github.com> Date: Thu, 17 Oct 2024 11:46:39 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9C=A0=EC=A0=80=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=EC=97=90=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20=EC=BB=AC?= =?UTF-8?q?=EB=9F=BC=20=EC=B6=94=EA=B0=80=20(#134)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 이메일 추가에 따른 dto, test 수정 --- .../user/application/service/UserService.java | 2 ++ .../java/com/sparta/user/domain/model/User.java | 4 ++++ .../user/presentation/request/UserRequest.java | 5 +++++ .../java/com/sparta/user/http/UserApiTest.http | 5 +++-- .../sparta/user/service/AddressServiceTest.java | 12 ++++++------ .../user/service/PointHistoryServiceTests.java | 6 ++++-- .../sparta/user/service/UserServiceTests.java | 10 +++++++--- .../server/src/test/resources/application.yml | 17 +++++++++++++++++ .../user/user_dto/infrastructure/UserDto.java | 1 + 9 files changed, 49 insertions(+), 13 deletions(-) create mode 100644 service/user/server/src/test/resources/application.yml diff --git a/service/user/server/src/main/java/com/sparta/user/application/service/UserService.java b/service/user/server/src/main/java/com/sparta/user/application/service/UserService.java index 0569d4d8..51681033 100644 --- a/service/user/server/src/main/java/com/sparta/user/application/service/UserService.java +++ b/service/user/server/src/main/java/com/sparta/user/application/service/UserService.java @@ -40,6 +40,7 @@ public UserDto getUserByUsername(String username) { user.getId(), user.getUsername(), user.getPassword(), + user.getEmail(), user.getRole().name(), user.getPoint() ); @@ -54,6 +55,7 @@ public UserDto getUserByUserId(Long userId) { user.getId(), user.getUsername(), user.getPassword(), + user.getEmail(), user.getRole().name(), user.getPoint() ); diff --git a/service/user/server/src/main/java/com/sparta/user/domain/model/User.java b/service/user/server/src/main/java/com/sparta/user/domain/model/User.java index 163fe98e..475d360f 100644 --- a/service/user/server/src/main/java/com/sparta/user/domain/model/User.java +++ b/service/user/server/src/main/java/com/sparta/user/domain/model/User.java @@ -43,6 +43,9 @@ public class User extends BaseEntity { @Column(nullable = false) private String nickname; + @Column(unique = true, nullable = false) + private String email; + @Column(nullable = false) private BigDecimal point; @@ -61,6 +64,7 @@ public static User create(UserRequest.Create request, String encodedPassword) { .username(request.getUsername()) .password(encodedPassword) .nickname(request.getNickname()) + .email(request.getEmail()) .point(request.getPoint()) .role(request.getRole()) .build(); diff --git a/service/user/server/src/main/java/com/sparta/user/presentation/request/UserRequest.java b/service/user/server/src/main/java/com/sparta/user/presentation/request/UserRequest.java index 4929ab6e..50ceaffc 100644 --- a/service/user/server/src/main/java/com/sparta/user/presentation/request/UserRequest.java +++ b/service/user/server/src/main/java/com/sparta/user/presentation/request/UserRequest.java @@ -2,6 +2,7 @@ import com.sparta.user.domain.model.vo.UserRole; import jakarta.validation.constraints.DecimalMin; +import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; import java.math.BigDecimal; @@ -26,6 +27,10 @@ public static class Create { @NotBlank(message = "비밀번호는 비어 있을 수 없습니다.") private String password; + @Email(message = "이메일 형식이 유효하지 않습니다.") + @NotBlank(message = "이메일은 비어 있을 수 없습니다.") + private String email; + @NotBlank(message = "닉네임은 비어 있을 수 없습니다.") private String nickname; diff --git a/service/user/server/src/test/java/com/sparta/user/http/UserApiTest.http b/service/user/server/src/test/java/com/sparta/user/http/UserApiTest.http index dc6c205e..c3f0770c 100644 --- a/service/user/server/src/test/java/com/sparta/user/http/UserApiTest.http +++ b/service/user/server/src/test/java/com/sparta/user/http/UserApiTest.http @@ -6,9 +6,10 @@ POST http://localhost:{{Port}}/api/users/sign-up Content-Type: application/json { - "username": "newUser", + "username": "newUser4", "password": "password123", - "nickname": "nickname", + "nickname": "nickname4", + "email": "newemail@email.com", "point": 0, "role": "관리자" } diff --git a/service/user/server/src/test/java/com/sparta/user/service/AddressServiceTest.java b/service/user/server/src/test/java/com/sparta/user/service/AddressServiceTest.java index 5dd25a11..fe388c6a 100644 --- a/service/user/server/src/test/java/com/sparta/user/service/AddressServiceTest.java +++ b/service/user/server/src/test/java/com/sparta/user/service/AddressServiceTest.java @@ -46,7 +46,7 @@ public class AddressServiceTest { void test_배송지_생성() { // given UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); @@ -96,7 +96,7 @@ public class AddressServiceTest { void test_배송지_단일_조회_성공() { // given UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); @@ -145,7 +145,7 @@ public class AddressServiceTest { // given Long userId = 1L; UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); @@ -183,7 +183,7 @@ public class AddressServiceTest { void test_전체_배송지_조회() { // given UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); @@ -221,7 +221,7 @@ public class AddressServiceTest { Long userId = 1L; Long addressId = 1L; UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); Address address = Address.create(user, new AddressRequest.Create( @@ -266,7 +266,7 @@ public class AddressServiceTest { Long addressId = 1L; UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); Address address = Address.create(user, new AddressRequest.Create( diff --git a/service/user/server/src/test/java/com/sparta/user/service/PointHistoryServiceTests.java b/service/user/server/src/test/java/com/sparta/user/service/PointHistoryServiceTests.java index 7e28e085..e535e3f5 100644 --- a/service/user/server/src/test/java/com/sparta/user/service/PointHistoryServiceTests.java +++ b/service/user/server/src/test/java/com/sparta/user/service/PointHistoryServiceTests.java @@ -40,7 +40,7 @@ public class PointHistoryServiceTests { void test_포인트_내역_추가_성공() { // Given UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", BigDecimal.ZERO, UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); PointHistoryDto request = new PointHistoryDto( @@ -53,6 +53,7 @@ public class PointHistoryServiceTests { // Mock user repository when(userRepository.findById(user.getId())).thenReturn(Optional.of(user)); + when(pointHistoryRepository.save(any(PointHistory.class))).thenReturn(new PointHistory()); // When pointHistoryService.createPointHistory(request); @@ -88,7 +89,8 @@ public class PointHistoryServiceTests { void test_포인트_내역_추가_시_유저의_포인트_부족() { // Given UserRequest.Create userRequest = new UserRequest.Create( - "username", "password", "nickname", new BigDecimal("100"), UserRole.ROLE_USER + "username", "password", "test@email.com", "nickname", new BigDecimal("100"), + UserRole.ROLE_USER ); User user = User.create(userRequest, "encodedPassword"); PointHistoryDto request = new PointHistoryDto( diff --git a/service/user/server/src/test/java/com/sparta/user/service/UserServiceTests.java b/service/user/server/src/test/java/com/sparta/user/service/UserServiceTests.java index 379e0174..c0210247 100644 --- a/service/user/server/src/test/java/com/sparta/user/service/UserServiceTests.java +++ b/service/user/server/src/test/java/com/sparta/user/service/UserServiceTests.java @@ -36,7 +36,8 @@ class UserServiceTests { void test_회원가입_시_존재하는_유저인지_확인() { // Arrange UserRequest.Create request = - new UserRequest.Create("existinguser", "password123", "nickname", BigDecimal.ZERO, + new UserRequest.Create("existinguser", "password123", "test@email.com", "nickname", + BigDecimal.ZERO, UserRole.ROLE_ADMIN); when(userRepository.findByUsername("existinguser")).thenReturn(Optional.of(new User())); @@ -54,7 +55,8 @@ class UserServiceTests { void test_회원가입() { // Arrange UserRequest.Create request = - new UserRequest.Create("newuser", "password123", "nickname", BigDecimal.ZERO, + new UserRequest.Create("newuser", "password123", "test@email.com", "nickname", + BigDecimal.ZERO, UserRole.ROLE_ADMIN); when(userRepository.findByUsername("newuser")).thenReturn(Optional.empty()); @@ -77,6 +79,7 @@ class UserServiceTests { User savedUser = userCaptor.getValue(); assertEquals("newuser", savedUser.getUsername()); assertEquals("nickname", savedUser.getNickname()); + assertEquals("test@email.com", savedUser.getEmail()); assertEquals(BigDecimal.ZERO, savedUser.getPoint()); assertEquals(UserRole.ROLE_ADMIN, savedUser.getRole()); } @@ -100,7 +103,8 @@ class UserServiceTests { // Arrange String username = "existinguser"; UserRequest.Create request = - new UserRequest.Create(username, "password123", "nickname", BigDecimal.ZERO, + new UserRequest.Create(username, "password123", "nickname", "test@email.com", + BigDecimal.ZERO, UserRole.ROLE_ADMIN); User existingUser = User.create(request, "password123"); diff --git a/service/user/server/src/test/resources/application.yml b/service/user/server/src/test/resources/application.yml new file mode 100644 index 00000000..575f334d --- /dev/null +++ b/service/user/server/src/test/resources/application.yml @@ -0,0 +1,17 @@ +spring: + datasource: + url: jdbc:mysql://localhost:3306/user + username: user + password: password + driver-class-name: com.mysql.cj.jdbc.Driver + + jpa: + hibernate: + ddl-auto: update + properties: + hibernate: + dialect: org.hibernate.dialect.MySQLDialect + +eureka: + client: + enabled: false # 단위 테스트 시에는 유레카 클라이언트를 사용하지 않음 diff --git a/service/user/user_dto/src/main/java/com/sparta/user/user_dto/infrastructure/UserDto.java b/service/user/user_dto/src/main/java/com/sparta/user/user_dto/infrastructure/UserDto.java index 495455fa..260d0062 100644 --- a/service/user/user_dto/src/main/java/com/sparta/user/user_dto/infrastructure/UserDto.java +++ b/service/user/user_dto/src/main/java/com/sparta/user/user_dto/infrastructure/UserDto.java @@ -13,6 +13,7 @@ public class UserDto { private Long userId; private String username; private String password; + private String email; private String role; private BigDecimal point;