Skip to content

Commit

Permalink
[SELC-4846] Feat: Refactor retrievedIds method (#449)
Browse files Browse the repository at this point in the history
  • Loading branch information
flaminiaScarciofolo committed May 31, 2024
1 parent 4c41382 commit 06816a3
Show file tree
Hide file tree
Showing 5 changed files with 105 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public interface UserApiConnector {

Collection<UserInfo> getUsers(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId);

List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId);

List<UserInstitution> retrieveFilteredUser(String userId, String institutionId, String productId);

String createOrUpdateUserByFiscalCode(Institution institution, String productId, UserToCreate userDto, List<CreateUserDto.Role> role);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,22 @@ public Collection<UserInfo> getUsers(String institutionId, UserInfo.UserInfoFilt
.orElse(Collections.emptyList());
}

@Override
public List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId) {

return Optional.ofNullable(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId,
null,
List.of(userInfoFilter.getProductId()),
null,
Optional.ofNullable(userInfoFilter.getAllowedStates())
.map(relationshipStates -> relationshipStates.stream().map(Enum::name).toList())
.orElse(null),
loggedUserId)
.getBody()).map(userInstitutionResponses -> userInstitutionResponses.stream()
.map(UserInstitutionResponse::getUserId).toList())
.orElse(Collections.emptyList());
}

@Override
@Retry(name = "retryTimeout")
public List<UserInstitution> retrieveFilteredUser(String userId, String institutionId, String productId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,7 @@ private static UserInfoResponse getUserProductsResponse() {
institutionProducts3.setRole(PartyRole.MANAGER);



userProductsResponse.setInstitutions(List.of(institutionProducts, institutionProducts2,institutionProducts4, institutionProducts3));
userProductsResponse.setInstitutions(List.of(institutionProducts, institutionProducts2, institutionProducts4, institutionProducts3));
return userProductsResponse;
}

Expand Down Expand Up @@ -183,15 +182,16 @@ void getUserById() {
assertNotNull(user);
verify(userApiRestClient, times(1))._usersIdDetailsGet(userId, fields.get(0), institutionId);
}

@Test
void verifyUserExist_UserExists() {
String userId = "userId";
String institutionId = "institutionId";
String productId = "productId";
when(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(eq(institutionId), eq(null), eq(List.of(productId)), eq(null), anyList(), eq(userId))).thenReturn(ResponseEntity.ok(List.of(new UserInstitutionResponse())));

List<UserInstitution> response = userConnector.retrieveFilteredUser(userId, institutionId, productId);
assertEquals(1, response.size());
List<UserInstitution> response = userConnector.retrieveFilteredUser(userId, institutionId, productId);
assertEquals(1, response.size());

verify(userInstitutionApiRestClient, times(1))._institutionsInstitutionIdUserInstitutionsGet(eq(institutionId), eq(null), eq(List.of(productId)), eq(null), anyList(), eq(userId));
}
Expand Down Expand Up @@ -265,7 +265,7 @@ void update() {
userConnector.updateUser(userId, institutionId, user);
// then
verify(userApiRestClient, times(1))
._usersIdUserRegistryPut(userId, institutionId,new UpdateUserRequest());
._usersIdUserRegistryPut(userId, institutionId, new UpdateUserRequest());
verifyNoMoreInteractions(userApiRestClient);
}

Expand All @@ -279,15 +279,15 @@ void getUsers_emptyList() {
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
userInfoFilter.setRole(SelfCareAuthority.ADMIN);

when(userApiRestClient._usersUserIdInstitutionInstitutionIdGet(eq(institutionId), eq(loggedUserId), eq(null), eq(null), eq(null),eq(List.of("MANAGER", "DELEGATE", "SUB_DELEGATE")), eq(List.of("ACTIVE", "SUSPENDED"))))
when(userApiRestClient._usersUserIdInstitutionInstitutionIdGet(eq(institutionId), eq(loggedUserId), eq(null), eq(null), eq(null), eq(List.of("MANAGER", "DELEGATE", "SUB_DELEGATE")), eq(List.of("ACTIVE", "SUSPENDED"))))
.thenReturn(ResponseEntity.ok(Collections.emptyList()));

// when
Collection<UserInfo> result = userConnector.getUsers(institutionId, userInfoFilter, loggedUserId);

// then
assertTrue(result.isEmpty());
verify(userApiRestClient, times(1))._usersUserIdInstitutionInstitutionIdGet(eq(institutionId), eq(loggedUserId), eq(null), eq(null), eq(null),eq(List.of("MANAGER", "DELEGATE", "SUB_DELEGATE")), eq(List.of("ACTIVE", "SUSPENDED")));
verify(userApiRestClient, times(1))._usersUserIdInstitutionInstitutionIdGet(eq(institutionId), eq(loggedUserId), eq(null), eq(null), eq(null), eq(List.of("MANAGER", "DELEGATE", "SUB_DELEGATE")), eq(List.of("ACTIVE", "SUSPENDED")));
verifyNoMoreInteractions(userApiRestClient);
}

Expand Down Expand Up @@ -385,7 +385,7 @@ void testCreateOrUpdateUserByFiscalCode() {
institution.setDescription("description");
institution.setRootParent(response);
// Act
userConnector.createOrUpdateUserByFiscalCode(institution, "productId", userDto, List.of(role, role2));
userConnector.createOrUpdateUserByFiscalCode(institution, "productId", userDto, List.of(role, role2));

// Assert that nothing has changed
verify(userApiRestClient)._usersPost(Mockito.any());
Expand Down Expand Up @@ -419,4 +419,43 @@ void testCreateOrUpdateUserByUserId() {
verify(userApiRestClient)._usersUserIdPost(eq("userId"), any());
}

@Test
public void retrieveFilteredUserInstitutionReturnsUserInstitutions() {
// Given
String institutionId = "institutionId";
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
userInfoFilter.setProductId("productId");
String loggedUserId = "loggedUserId";
List<UserInstitutionResponse> userInstitutionResponses = List.of(new UserInstitutionResponse(), new UserInstitutionResponse());
when(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId, null, List.of(userInfoFilter.getProductId()), null,
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), loggedUserId))
.thenReturn(ResponseEntity.ok(userInstitutionResponses));

// When
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter, loggedUserId);

// Then
assertEquals(userInstitutionResponses.size(), result.size());
}

@Test
public void retrieveFilteredUserInstitutionReturnsEmptyListWhenNoUserInstitutions() {
// Given
String institutionId = "institutionId";
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setProductId("productId");
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
String loggedUserId = "loggedUserId";
when(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId, null, List.of(userInfoFilter.getProductId()), null,
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), loggedUserId))
.thenReturn(ResponseEntity.ok(List.of()));

// When
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter, loggedUserId);

// Then
assertEquals(0, result.size());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,10 @@ public void activate(String groupId) {
private List<String> retrievedIds(String institutionId, UserInfo.UserInfoFilter userInfoFilter) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String loggedUserId = ((SelfCareUser) authentication.getPrincipal()).getId();
Collection<UserInfo> retrievedUsers = userApiConnector.getUsers(
List<String> retrievedUsers = userApiConnector.retrieveFilteredUserInstitution(
institutionId,
userInfoFilter, loggedUserId);
return retrievedUsers.stream()
.map(UserInfo::getId)
.sorted()
.toList();
}
Expand Down
Loading

0 comments on commit 06816a3

Please sign in to comment.