1
1
package de .filefighter .rest .domain .user .business ;
2
2
3
+ import de .filefighter .rest .domain .token .data .dto .AccessToken ;
4
+ import de .filefighter .rest .domain .token .data .dto .RefreshToken ;
5
+ import de .filefighter .rest .domain .user .data .dto .User ;
6
+ import de .filefighter .rest .domain .user .data .persistance .UserEntity ;
3
7
import de .filefighter .rest .domain .user .data .persistance .UserRepository ;
8
+ import de .filefighter .rest .domain .user .exceptions .UserNotAuthenticatedException ;
9
+ import de .filefighter .rest .domain .user .exceptions .UserNotFoundException ;
4
10
import org .junit .jupiter .api .BeforeEach ;
5
11
import org .junit .jupiter .api .Test ;
6
12
13
+ import static de .filefighter .rest .configuration .RestConfiguration .AUTHORIZATION_BASIC_PREFIX ;
7
14
import static org .junit .jupiter .api .Assertions .*;
8
15
import static org .mockito .Mockito .mock ;
9
16
import static org .mockito .Mockito .when ;
@@ -21,32 +28,173 @@ void setUp() {
21
28
22
29
@ Test
23
30
void getUserCount () {
24
- long expectedCount = 420 ;
31
+ long count = 20 ;
25
32
26
- when (userRepositoryMock .count ()).thenReturn (expectedCount );
33
+ when (userRepositoryMock .count ()).thenReturn (count );
27
34
28
- long actualCount = userBusinessService .getUserCount ();
35
+ long actual = userBusinessService .getUserCount ();
29
36
30
- assertEquals (expectedCount , actualCount );
37
+ assertEquals (count , actual );
31
38
}
32
39
33
40
@ Test
34
- void getUserByUsernameAndPassword () {
41
+ void getUserByUsernameAndPasswordThrowsErrors () {
42
+ String notValid = "" ;
43
+ String validButDoesntMatch = "something" ;
44
+ String matchesButIsNotSupportedEncoding = AUTHORIZATION_BASIC_PREFIX + "���" ;
45
+ String withoutFormalRequirements = AUTHORIZATION_BASIC_PREFIX + "dWdhYnVnYXBhc3N3b3Jk" ; //ugabugapassword
46
+ String userNotFound = AUTHORIZATION_BASIC_PREFIX + "dXNlcjpwYXNzd29yZA==" ; // user:password
47
+
48
+ assertThrows (UserNotAuthenticatedException .class , () ->
49
+ userBusinessService .getUserByUsernameAndPassword (notValid )
50
+ );
51
+ assertThrows (UserNotAuthenticatedException .class , () ->
52
+ userBusinessService .getUserByUsernameAndPassword (validButDoesntMatch )
53
+ );
54
+ assertThrows (RuntimeException .class , () ->
55
+ userBusinessService .getUserByUsernameAndPassword (matchesButIsNotSupportedEncoding )
56
+ );
57
+ assertThrows (UserNotAuthenticatedException .class , () ->
58
+ userBusinessService .getUserByUsernameAndPassword (withoutFormalRequirements )
59
+ );
60
+
61
+ when (userRepositoryMock .findByUsernameAndPassword ("user" , "password" )).thenReturn (null );
62
+ assertThrows (UserNotFoundException .class , () ->
63
+ userBusinessService .getUserByUsernameAndPassword (userNotFound )
64
+ );
65
+ }
66
+
67
+ @ Test
68
+ void getUserByUsernameAndPasswordWorksCorrectly () {
69
+ String header = AUTHORIZATION_BASIC_PREFIX + "dXNlcjpwYXNzd29yZA==" ; // user:password
70
+ User dummyUser = User .builder ().build ();
71
+ UserEntity dummyEntity = UserEntity .builder ().build ();
72
+
73
+ when (userRepositoryMock .findByUsernameAndPassword ("user" , "password" )).thenReturn (dummyEntity );
74
+ when (userDtoServiceMock .createDto (dummyEntity )).thenReturn (dummyUser );
75
+
76
+ User actual = userBusinessService .getUserByUsernameAndPassword (header );
77
+ assertEquals (dummyUser , actual );
78
+ }
79
+
80
+ @ Test
81
+ void getRefreshTokenForUserWithoutUser () {
82
+ String invalidString = "" ;
83
+ long userId = 420 ;
84
+ String username = "someString" ;
85
+
86
+ User dummyUser = User .builder ().id (userId ).username (username ).build ();
87
+
88
+ when (userRepositoryMock .findByUserIdAndUsername (userId , username )).thenReturn (null );
89
+
90
+ assertThrows (UserNotFoundException .class , () ->
91
+ userBusinessService .getRefreshTokenForUser (dummyUser )
92
+ );
35
93
}
36
94
37
95
@ Test
38
- void getRefreshTokenForUser () {
96
+ void getRefreshTokenForUserWithInvalidString () {
97
+ String invalidString = "" ;
98
+ long userId = 420 ;
99
+ String username = "someString" ;
100
+
101
+ User dummyUser = User .builder ().id (userId ).username (username ).build ();
102
+ UserEntity dummyEntity = UserEntity .builder ().refreshToken (invalidString ).build ();
103
+
104
+ when (userRepositoryMock .findByUserIdAndUsername (userId , username )).thenReturn (dummyEntity );
105
+
106
+ assertThrows (IllegalStateException .class , () ->
107
+ userBusinessService .getRefreshTokenForUser (dummyUser )
108
+ );
39
109
}
40
110
41
111
@ Test
42
- void getUserByRefreshTokenAndUserId () {
112
+ void getCorrectRefreshTokenForUser () {
113
+ long userId = 420 ;
114
+ String username = "someString" ;
115
+ String refreshToken = "someToken" ;
116
+ User dummyUser = User .builder ().id (userId ).username (username ).build ();
117
+ UserEntity dummyEntity = UserEntity .builder ().refreshToken (refreshToken ).build ();
118
+ RefreshToken expected = RefreshToken .builder ().refreshToken (refreshToken ).user (dummyUser ).build ();
119
+
120
+ when (userRepositoryMock .findByUserIdAndUsername (userId , username )).thenReturn (dummyEntity );
121
+
122
+ RefreshToken actual = userBusinessService .getRefreshTokenForUser (dummyUser );
123
+ assertEquals (expected , actual );
43
124
}
44
125
126
+ // -------------------------------------------------------------------------------------------- //
127
+
45
128
@ Test
46
- void getUserByAccessTokenAndUserId () {
129
+ void getUserByAccessTokenAndUserIdWithInvalidUserId () {
130
+ long userId = 420 ;
131
+ AccessToken dummyAccessToken = AccessToken .builder ().userId (300 ).build ();
132
+
133
+ assertThrows (UserNotAuthenticatedException .class , () ->
134
+ userBusinessService .getUserByAccessTokenAndUserId (dummyAccessToken , userId )
135
+ );
47
136
}
48
137
49
138
@ Test
50
- void getUserEntityByUserIdAndUsername () {
139
+ void getUserByAccessTokenAndUserIdWithoutUser () {
140
+ long userId = 420 ;
141
+ AccessToken accessToken = AccessToken .builder ().userId (userId ).build ();
142
+
143
+ when (userRepositoryMock .findByUserId (userId )).thenReturn (null );
144
+
145
+ assertThrows (UserNotFoundException .class , () ->
146
+ userBusinessService .getUserByAccessTokenAndUserId (accessToken , userId )
147
+ );
148
+ }
149
+
150
+ @ Test
151
+ void getUserByAccessTokenAndUserIdCorrectly () {
152
+ long userId = 420 ;
153
+ AccessToken accessToken = AccessToken .builder ().userId (userId ).build ();
154
+ User dummyUser = User .builder ().id (userId ).build ();
155
+ UserEntity dummyEntity = UserEntity .builder ().build ();
156
+
157
+ when (userRepositoryMock .findByUserId (userId )).thenReturn (dummyEntity );
158
+ when (userDtoServiceMock .createDto (dummyEntity )).thenReturn (dummyUser );
159
+
160
+ User actual = userBusinessService .getUserByAccessTokenAndUserId (accessToken , userId );
161
+
162
+ assertEquals (dummyUser , actual );
163
+ }
164
+
165
+ // -------------------------------------------------------------------------------------------- //
166
+
167
+ @ Test
168
+ void getUserByRefreshTokenAndUserIdWithInvalidToken () {
169
+ assertThrows (UserNotAuthenticatedException .class , () ->
170
+ userBusinessService .getUserByRefreshTokenAndUserId ("" , 0 )
171
+ );
172
+ }
173
+
174
+ @ Test
175
+ void getUserByRefreshTokenAndUserIdWithoutUser () {
176
+ String token = "token" ;
177
+ long userId = 420 ;
178
+
179
+ when (userRepositoryMock .findByRefreshTokenAndUserId (token , userId )).thenReturn (null );
180
+
181
+ assertThrows (UserNotFoundException .class , () ->
182
+ userBusinessService .getUserByRefreshTokenAndUserId (token , userId )
183
+ );
184
+ }
185
+
186
+ @ Test
187
+ void getUserByRefreshTokenAndUserIdCorrectly () {
188
+ String token = "token" ;
189
+ long userId = 420 ;
190
+ User dummyUser = User .builder ().id (userId ).build ();
191
+ UserEntity dummyEntity = UserEntity .builder ().refreshToken (token ).build ();
192
+
193
+ when (userRepositoryMock .findByRefreshTokenAndUserId (token , userId )).thenReturn (dummyEntity );
194
+ when (userDtoServiceMock .createDto (dummyEntity )).thenReturn (dummyUser );
195
+
196
+ User actual = userBusinessService .getUserByRefreshTokenAndUserId (token , userId );
197
+
198
+ assertEquals (dummyUser , actual );
51
199
}
52
200
}
0 commit comments