11package timeeat .service .service ;
22
33import static org .assertj .core .api .Assertions .assertThat ;
4+ import static org .assertj .core .api .Assertions .assertThatCode ;
45import static org .junit .jupiter .api .Assertions .assertAll ;
56import static org .junit .jupiter .api .Assertions .assertThrows ;
67
@@ -19,6 +20,76 @@ class MemberServiceTest extends BaseServiceTest {
1920 @ Autowired
2021 private MemberService memberService ;
2122
23+ @ Nested
24+ class ValidateNickname {
25+
26+ @ Test
27+ void 중복되지_않은_닉네임이면_예외가_발생하지_않는다 () {
28+ memberGenerator .generate ("123" , "nickname" );
29+ Member member = memberGenerator .generate ("456" , "unique-nickname" );
30+ String newNickname = "new-unique-nickname" ;
31+
32+ assertThatCode (() -> memberService .validateNickname (newNickname , member .getId ()))
33+ .doesNotThrowAnyException ();
34+ }
35+
36+ @ Test
37+ void 자신의_기존_닉네임이면_예외가_발생하지_않는다 () {
38+ Member member = memberGenerator .generate ("123" , "nickname" );
39+ String newNickname = "nickname" ;
40+
41+ assertThatCode (() -> memberService .validateNickname (newNickname , member .getId ()))
42+ .doesNotThrowAnyException ();
43+ }
44+
45+ @ Test
46+ void 중복된_닉네임이_있으면_예외가_발생한다 () {
47+ memberGenerator .generate ("123" , "duplicate-nickname" );
48+ Member member = memberGenerator .generate ("456" , "another-nickname" );
49+ String newNickname = "duplicate-nickname" ;
50+
51+ BusinessException exception = assertThrows (BusinessException .class ,
52+ () -> memberService .validateNickname (newNickname , member .getId ()));
53+
54+ assertThat (exception .getErrorCode ()).isEqualTo (BusinessErrorCode .DUPLICATE_NICKNAME );
55+ }
56+ }
57+
58+ @ Nested
59+ class validatePhoneNumber {
60+
61+ @ Test
62+ void 중복되지_않은_전화번호이면_예외가_발생하지_않는다 () {
63+ memberGenerator .generate ("123" , "nickname" );
64+ Member member = memberGenerator .generate ("456" , "unique-nickname" );
65+ String newPhoneNumber = "01012345678" ;
66+
67+ assertThatCode (() -> memberService .validatePhoneNumber (newPhoneNumber , member .getId ()))
68+ .doesNotThrowAnyException ();
69+ }
70+
71+ @ Test
72+ void 자신의_기존_전화번호이면_예외가_발생하지_않는다 () {
73+ Member member = memberGenerator .generateRegisteredMember ("123" , "nickname" , "01012345678" );
74+ String newPhoneNumber = "01012345678" ;
75+
76+ assertThatCode (() -> memberService .validatePhoneNumber (newPhoneNumber , member .getId ()))
77+ .doesNotThrowAnyException ();
78+ }
79+
80+ @ Test
81+ void 중복된_전화번호가_있으면_예외가_발생한다 () {
82+ memberGenerator .generateRegisteredMember ("123" , "nickname1" , "01012345678" );
83+ Member member = memberGenerator .generateRegisteredMember ("456" , "nickname2" , "01087654321" );
84+ String newPhoneNumber = "01012345678" ;
85+
86+ BusinessException exception = assertThrows (BusinessException .class ,
87+ () -> memberService .validatePhoneNumber (newPhoneNumber , member .getId ()));
88+
89+ assertThat (exception .getErrorCode ()).isEqualTo (BusinessErrorCode .DUPLICATE_PHONE_NUMBER );
90+ }
91+ }
92+
2293 @ Nested
2394 class Update {
2495
@@ -66,9 +137,7 @@ class Update {
66137 @ Test
67138 void 중복된_전화번호가_있으면_예외가_발생한다 () {
68139 String phoneNumber = "01012345678" ;
69- Member existMember = memberGenerator .generate ("123" , "nickname1" );
70- memberService .update (existMember .getId (),
71- new MemberUpdateRequest ("nickname1" , phoneNumber , "성북구" , true ));
140+ memberGenerator .generateRegisteredMember ("123" , "nickname1" , phoneNumber );
72141 Member updatedMember = memberGenerator .generate ("456" , "nickname2" );
73142 MemberUpdateRequest request =
74143 new MemberUpdateRequest ("new-nickname" , phoneNumber , "성북구" , true );
@@ -82,9 +151,7 @@ class Update {
82151 @ Test
83152 void 기존의_전화번호와_동일하면_정상적으로_회원_정보가_수정된다 () {
84153 String phoneNumber = "01012345678" ;
85- Member member = memberGenerator .generate ("123" , "nickname1" );
86- memberService .update (member .getId (),
87- new MemberUpdateRequest ("nickname1" , phoneNumber , "성북구" , true ));
154+ Member member = memberGenerator .generateRegisteredMember ("123" , "nickname1" , phoneNumber );
88155 MemberUpdateRequest request =
89156 new MemberUpdateRequest ("new-nickname" , phoneNumber , "성북구" , true );
90157
0 commit comments