Skip to content

Commit 7a40405

Browse files
committed
refactor: 멤버 엔티티에 기수 추가 및 회원가입 시 GenerationService의 값을 읽어 자동으로 기수 기입하게 구현 및 테스트 코드에 반영 (DASOMBE-16)
1 parent c10f80b commit 7a40405

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

src/main/java/dmu/dasom/api/domain/member/dto/SignupRequestDto.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ public class SignupRequestDto {
2222
@Schema(description = "비밀번호", example = "password", minLength = 8, maxLength = 128)
2323
private String password;
2424

25-
public Member toEntity(final String password) {
25+
public Member toEntity(final String password, final String generation) {
2626
return Member.builder()
2727
.email(this.email)
2828
.password(password)
29+
.generation(generation)
2930
.build();
3031
}
3132
}

src/main/java/dmu/dasom/api/domain/member/entity/Member.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,7 @@ public class Member extends BaseEntity {
3333
@Enumerated(EnumType.STRING)
3434
private Role role = Role.ROLE_MEMBER;
3535

36-
}
36+
// 기수 정보를 저장할 필드 추가
37+
@Column(name = "generation", length = 16, nullable = false)
38+
private String generation;
39+
}

src/main/java/dmu/dasom/api/domain/member/service/MemberServiceImpl.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import dmu.dasom.api.global.auth.dto.TokenBox;
99
import dmu.dasom.api.global.auth.jwt.JwtUtil;
1010
import dmu.dasom.api.global.auth.userdetails.UserDetailsImpl;
11+
import dmu.dasom.api.global.generation.service.GenerationService;
1112
import lombok.RequiredArgsConstructor;
1213
import org.springframework.security.core.GrantedAuthority;
1314
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
@@ -25,6 +26,7 @@ public class MemberServiceImpl implements MemberService {
2526
private final BCryptPasswordEncoder encoder;
2627
private final MemberRepository memberRepository;
2728
private final JwtUtil jwtUtil;
29+
private final GenerationService generationService;
2830

2931
// 이메일로 사용자 조회
3032
@Override
@@ -46,8 +48,9 @@ public void signUp(final SignupRequestDto request) {
4648
if (checkByEmail(request.getEmail()))
4749
throw new CustomException(ErrorCode.SIGNUP_FAILED);
4850

49-
// 비밀번호 암호화 후 저장
50-
memberRepository.save(request.toEntity(encoder.encode(request.getPassword())));
51+
String currentGeneration = generationService.getCurrentGeneration();
52+
// 비밀번호 암호화 후 저장 + 기수도 현재 기수로 자동 기입
53+
memberRepository.save(request.toEntity(encoder.encode(request.getPassword()), currentGeneration));
5154
}
5255

5356
// 토큰 갱신

src/test/java/dmu/dasom/api/domain/member/MemberServiceTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import dmu.dasom.api.domain.member.entity.Member;
77
import dmu.dasom.api.domain.member.repository.MemberRepository;
88
import dmu.dasom.api.domain.member.service.MemberServiceImpl;
9+
import dmu.dasom.api.global.generation.service.GenerationService;
910
import org.junit.jupiter.api.DisplayName;
1011
import org.junit.jupiter.api.Test;
1112
import org.junit.jupiter.api.extension.ExtendWith;
@@ -28,6 +29,9 @@ class MemberServiceTest {
2829
@Mock
2930
MemberRepository memberRepository;
3031

32+
@Mock
33+
private GenerationService generationService;
34+
3135
@InjectMocks
3236
private MemberServiceImpl memberService;
3337

@@ -101,12 +105,13 @@ void signUp_success() {
101105
when(request.getPassword()).thenReturn("password");
102106
when(encoder.encode("password")).thenReturn("encodedPassword");
103107
when(memberRepository.existsByEmail("[email protected]")).thenReturn(false);
104-
108+
when(generationService.getCurrentGeneration()).thenReturn("34기");
105109
// when
106110
memberService.signUp(request);
107111

108112
// then
109113
verify(memberRepository, times(1)).save(any());
114+
verify(generationService, times(1)).getCurrentGeneration();
110115
}
111116

112117
@Test

0 commit comments

Comments
 (0)