1
1
package devkor .ontime_back .service ;
2
2
3
+ import com .google .firebase .auth .UserInfo ;
3
4
import devkor .ontime_back .dto .ChangePasswordDto ;
4
5
import devkor .ontime_back .dto .UserAdditionalInfoDto ;
6
+ import devkor .ontime_back .dto .UserInfoResponse ;
5
7
import devkor .ontime_back .dto .UserSignUpDto ;
8
+ import devkor .ontime_back .entity .Role ;
6
9
import devkor .ontime_back .entity .User ;
7
10
import devkor .ontime_back .entity .UserSetting ;
8
11
import devkor .ontime_back .repository .UserRepository ;
18
21
19
22
import java .util .Collection ;
20
23
import java .util .NoSuchElementException ;
24
+ import java .util .Optional ;
21
25
import java .util .UUID ;
22
26
23
27
import static org .assertj .core .api .Assertions .assertThat ;
24
28
import static org .assertj .core .api .Assertions .assertThatThrownBy ;
25
29
import static org .junit .jupiter .api .Assertions .*;
30
+ import static org .mockito .ArgumentMatchers .any ;
31
+ import static org .mockito .ArgumentMatchers .anyString ;
32
+ import static org .mockito .Mockito .times ;
33
+ import static org .mockito .Mockito .verify ;
26
34
27
35
@ SpringBootTest
28
36
class UserAuthServiceTest {
@@ -49,39 +57,43 @@ void tearDown() {
49
57
userRepository .deleteAllInBatch ();
50
58
}
51
59
52
- @ DisplayName ("회원정보를 받아 User테이블과 UserSetting테이블에 데이터를 생성하고 연관관계를 생성한다.(회원가입을 한다.) " )
60
+ @ DisplayName ("회원가입에 성공해 유저정보가 성공적으로 저장된다. " )
53
61
@ Test
54
62
void signUp () throws Exception {
55
63
// given
56
- UserSignUpDto userSignUpDto = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" , "a304cde3-8ee9-4054-971a-300aacc2177c" );
64
+ UserSignUpDto userSignUpDto = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" );
57
65
58
66
// when
59
- User addedUser = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse , userSignUpDto );
60
- UserSetting userSetting = addedUser .getUserSetting ();
67
+ UserInfoResponse userSignupResponse = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse , userSignUpDto );
61
68
62
69
// then
63
- assertThat (addedUser .getId ()).isNotNull ();
64
- assertThat (addedUser )
65
- .extracting ("email" , "name" , "punctualityScore" , "scheduleCountAfterReset" , "latenessCountAfterReset" )
66
- .contains ("user@example.com" , "junbeom" , -1f , 0 , 0 );
67
- assertThat (passwordEncoder .matches ("password1234" , addedUser .getPassword ())).isTrue ();
68
- assertThat (userSetting ).isNotNull ();
69
- assertThat (userSetting .getUserSettingId ())
70
- .isEqualTo (UUID .fromString ("a304cde3-8ee9-4054-971a-300aacc2177c" ));
71
-
70
+ assertThat (userSignupResponse .getUserId ()).isNotNull ();
71
+ assertThat (userSignupResponse )
72
+ .extracting ("email" , "name" , "spareTime" , "note" , "punctualityScore" , "role" )
73
+ .contains ("user@example.com" , "junbeom" , null , null , -1f , Role .GUEST );
74
+
75
+ Optional <User > addedUser = userRepository .findById (userSignupResponse .getUserId ());
76
+ assertThat (addedUser .isPresent ()).isTrue ();
77
+ User user = addedUser .get ();
78
+ assertThat (user )
79
+ .extracting ("email" , "imageUrl" , "name" , "spareTime" , "note" , "punctualityScore" , "scheduleCountAfterReset" , "latenessCountAfterReset" ,"role" )
80
+ .contains ("user@example.com" , null , "junbeom" , null , null , -1f , 0 , 0 , Role .GUEST );
81
+ assertThat (passwordEncoder .matches ("password1234" , user .getPassword ())).isTrue ();
82
+ assertThat (user .getRefreshToken ()).isNotNull ();
83
+ assertThat (user .getUserSetting ()).isNotNull ();
72
84
}
73
85
74
86
@ DisplayName ("이미 존재하는 이메일로 회원가입을 시도하는 경우 예외가 발생한다." )
75
87
@ Test
76
88
void signUpWithExistingEmail () throws Exception {
77
89
// given
78
- UserSignUpDto userSignUpDto1 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" , "a304cde3-8ee9-4054-971a-300aacc2177c" );
90
+ UserSignUpDto userSignUpDto1 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" );
79
91
80
- UserSignUpDto userSignUpDto2 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom2" , "a304cde3-8ee9-4054-971a-300aacc2177d" );
92
+ UserSignUpDto userSignUpDto2 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom2" );
81
93
82
94
// when, then
83
- User addedUser1 = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto1 );
84
- assertThat (addedUser1 . getId ()).isNotNull ();
95
+ UserInfoResponse userSignupResponse = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto1 );
96
+ assertThat (userSignupResponse . getUserId ()).isNotNull ();
85
97
86
98
assertThatThrownBy (() -> userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto2 ))
87
99
.isInstanceOf (GeneralException .class )
@@ -92,36 +104,19 @@ void signUpWithExistingEmail() throws Exception {
92
104
@ Test
93
105
void signUpWithExistingName () throws Exception {
94
106
// given
95
- UserSignUpDto userSignUpDto1 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" , "a304cde3-8ee9-4054-971a-300aacc2177c" );
107
+ UserSignUpDto userSignUpDto1 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" );
96
108
97
- UserSignUpDto userSignUpDto2 = getUserSignUpDto ("user2@example.com" , "password1234" , "junbeom" , "a304cde3-8ee9-4054-971a-300aacc2177d" );
109
+ UserSignUpDto userSignUpDto2 = getUserSignUpDto ("user2@example.com" , "password1234" , "junbeom" );
98
110
99
111
// when, then
100
- User addedUser1 = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto1 );
101
- assertThat (addedUser1 . getId ()).isNotNull ();
112
+ UserInfoResponse userSignupResponse = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto1 );
113
+ assertThat (userSignupResponse . getUserId ()).isNotNull ();
102
114
103
115
assertThatThrownBy (() -> userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto2 ))
104
116
.isInstanceOf (GeneralException .class )
105
117
.hasMessage ("이미 존재하는 이름입니다." );
106
118
}
107
119
108
- @ DisplayName ("이미 존재하는 유저세팅ID로 회원가입을 시도하는 경우 예외가 발생한다." )
109
- @ Test
110
- void signUpWithExistingUserSettingId () throws Exception {
111
- // given
112
- UserSignUpDto userSignUpDto1 = getUserSignUpDto ("user@example.com" , "password1234" , "junbeom" , "a304cde3-8ee9-4054-971a-300aacc2177c" );
113
-
114
- UserSignUpDto userSignUpDto2 = getUserSignUpDto ("user2@example.com" , "password1234" , "junbeom2" , "a304cde3-8ee9-4054-971a-300aacc2177c" );
115
-
116
- // when, then
117
- User addedUser1 = userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto1 );
118
- assertThat (addedUser1 .getId ()).isNotNull ();
119
-
120
- assertThatThrownBy (() -> userAuthService .signUp ((HttpServletRequest ) httpServletRequest , httpServletResponse ,userSignUpDto2 ))
121
- .isInstanceOf (GeneralException .class )
122
- .hasMessage ("이미 존재하는 userSettingId 입니다." );
123
- }
124
-
125
120
@ DisplayName ("(회원가입 직후) 유저의 추가정보 기입에 성공한다" )
126
121
@ Test
127
122
void addInfo () throws Exception {
@@ -286,12 +281,11 @@ void deleteUser(){
286
281
287
282
288
283
289
- private UserSignUpDto getUserSignUpDto (String email , String password , String name , String userSettingId ) {
284
+ private UserSignUpDto getUserSignUpDto (String email , String password , String name ) {
290
285
UserSignUpDto userSignUpDto = UserSignUpDto .builder ()
291
286
.email (email )
292
287
.password (password )
293
288
.name (name )
294
- .userSettingId (UUID .fromString (userSettingId ))
295
289
.build ();
296
290
return userSignUpDto ;
297
291
}
0 commit comments