Skip to content

Commit

Permalink
유저 엔티티에 이메일 컬럼 추가 (#134)
Browse files Browse the repository at this point in the history
- 이메일 추가에 따른 dto, test 수정
  • Loading branch information
kyeonkim authored Oct 17, 2024
1 parent 1071732 commit 57d4311
Show file tree
Hide file tree
Showing 9 changed files with 49 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public UserDto getUserByUsername(String username) {
user.getId(),
user.getUsername(),
user.getPassword(),
user.getEmail(),
user.getRole().name(),
user.getPoint()
);
Expand All @@ -54,6 +55,7 @@ public UserDto getUserByUserId(Long userId) {
user.getId(),
user.getUsername(),
user.getPassword(),
user.getEmail(),
user.getRole().name(),
user.getPoint()
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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": "관리자"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand Down Expand Up @@ -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");

Expand Down Expand Up @@ -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");

Expand Down Expand Up @@ -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");

Expand Down Expand Up @@ -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(
Expand Down Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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);
Expand Down Expand Up @@ -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(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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()));
Expand All @@ -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());
Expand All @@ -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());
}
Expand All @@ -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");
Expand Down
17 changes: 17 additions & 0 deletions service/user/server/src/test/resources/application.yml
Original file line number Diff line number Diff line change
@@ -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 # 단위 테스트 시에는 유레카 클라이언트를 사용하지 않음
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down

0 comments on commit 57d4311

Please sign in to comment.