6
6
import org .ays .auth .model .AysPermissionBuilder ;
7
7
import org .ays .auth .model .AysRole ;
8
8
import org .ays .auth .model .AysRoleBuilder ;
9
+ import org .ays .auth .model .enums .AysPermissionCategory ;
9
10
import org .ays .auth .model .enums .AysRoleStatus ;
10
11
import org .ays .auth .model .request .AysRoleUpdateRequest ;
11
12
import org .ays .auth .model .request .AysRoleUpdateRequestBuilder ;
34
35
import java .util .List ;
35
36
import java .util .Optional ;
36
37
import java .util .UUID ;
38
+ import java .util .Set ;
37
39
38
40
class AysRoleUpdateServiceImplTest extends AysUnitTest {
39
41
@@ -112,7 +114,7 @@ void givenIdAndRoleUpdateRequest_whenValuesValid_thenUpdateRoleWithSuperPermissi
112
114
Mockito .verify (identity , Mockito .times (1 ))
113
115
.isSuperAdmin ();
114
116
115
- Mockito .verify (identity , Mockito .never ( ))
117
+ Mockito .verify (identity , Mockito .times ( 1 ))
116
118
.getUserId ();
117
119
118
120
Mockito .verify (roleSavePort , Mockito .times (1 ))
@@ -156,6 +158,9 @@ void givenIdAndRoleUpdateRequest_whenValuesValid_thenUpdateRole() {
156
158
Mockito .when (identity .isSuperAdmin ())
157
159
.thenReturn (false );
158
160
161
+ Mockito .when (identity .getUserId ())
162
+ .thenReturn ("mockUpdatedUser" );
163
+
159
164
Mockito .when (roleSavePort .save (Mockito .any (AysRole .class )))
160
165
.thenReturn (Mockito .mock (AysRole .class ));
161
166
@@ -178,7 +183,87 @@ void givenIdAndRoleUpdateRequest_whenValuesValid_thenUpdateRole() {
178
183
Mockito .verify (identity , Mockito .times (1 ))
179
184
.isSuperAdmin ();
180
185
181
- Mockito .verify (identity , Mockito .never ())
186
+ Mockito .verify (identity , Mockito .times (1 ))
187
+ .getUserId ();
188
+
189
+ Mockito .verify (roleSavePort , Mockito .times (1 ))
190
+ .save (Mockito .any (AysRole .class ));
191
+ }
192
+
193
+ @ Test
194
+ void givenIdAndRoleUpdateRequest_whenPermissionsUpdatedAndNameUnchanged_thenUpdateRole () {
195
+ // Given
196
+ String mockId = AysRandomUtil .generateUUID ();
197
+ AysRoleUpdateRequest mockUpdateRequest = new AysRoleUpdateRequestBuilder ()
198
+ .withName ("ExistingName" )
199
+ .withPermissionIds (Set .of (UUID .randomUUID ().toString ()))
200
+ .build ();
201
+
202
+ AysRole mockRole = new AysRoleBuilder ()
203
+ .withName ("ExistingName" )
204
+ .withPermissions (List .of (
205
+ new AysPermissionBuilder ().withValidValues ()
206
+ .withName ("institution:page" )
207
+ .withCategory (AysPermissionCategory .PAGE )
208
+ .build ()
209
+ ))
210
+ .withId (mockId )
211
+ .build ();
212
+
213
+ // When
214
+ Mockito .when (roleReadPort .findById (Mockito .anyString ()))
215
+ .thenReturn (Optional .of (mockRole ));
216
+
217
+ Mockito .when (identity .getInstitutionId ())
218
+ .thenReturn (mockRole .getInstitution ().getId ());
219
+
220
+ Mockito .when (roleReadPort .findByName (Mockito .anyString ())).
221
+ thenReturn (Optional .of (mockRole ));
222
+
223
+
224
+ List <AysPermission > mockPermissions = new ArrayList <>();
225
+ mockUpdateRequest .getPermissionIds ().forEach (permissionId -> {
226
+ AysPermission mockPermission = new AysPermissionBuilder ()
227
+ .withValidValues ()
228
+ .withId (permissionId )
229
+ .withIsSuper (false )
230
+ .build ();
231
+ mockPermissions .add (mockPermission );
232
+ });
233
+ Mockito .when (permissionReadPort .findAllByIds (Mockito .anySet ()))
234
+ .thenReturn (mockPermissions );
235
+
236
+ Mockito .when (identity .isSuperAdmin ())
237
+ .thenReturn (false );
238
+
239
+ Mockito .when (identity .getUserId ())
240
+ .thenReturn ("mockUserId" );
241
+
242
+ Mockito .when (roleSavePort .save (Mockito .any (AysRole .class )))
243
+ .thenReturn (Mockito .mock (AysRole .class ));
244
+
245
+ // Then
246
+ roleUpdateService .update (mockId , mockUpdateRequest );
247
+
248
+ // Verify
249
+ Mockito .verify (roleReadPort , Mockito .times (1 ))
250
+ .findById (Mockito .anyString ());
251
+
252
+ Mockito .verify (identity , Mockito .times (1 ))
253
+ .getInstitutionId ();
254
+
255
+ Mockito .verify (roleReadPort , Mockito .never ())
256
+ .findByName (Mockito .anyString ());
257
+
258
+
259
+ Mockito .verify (permissionReadPort , Mockito .times (1 ))
260
+ .findAllByIds (Mockito .anySet ());
261
+
262
+ Mockito .verify (identity , Mockito .times (1 ))
263
+ .isSuperAdmin ();
264
+
265
+
266
+ Mockito .verify (identity , Mockito .times (1 ))
182
267
.getUserId ();
183
268
184
269
Mockito .verify (roleSavePort , Mockito .times (1 ))
0 commit comments