Skip to content

Commit fca8505

Browse files
[SELC-6228] updated UserServiceTest
1 parent 30639d2 commit fca8505

File tree

1 file changed

+51
-8
lines changed

1 file changed

+51
-8
lines changed

apps/user-ms/src/test/java/it/pagopa/selfcare/user/service/UserServiceTest.java

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,9 @@
2727
import it.pagopa.selfcare.user.entity.filter.OnboardedProductFilter;
2828
import it.pagopa.selfcare.user.entity.filter.UserInstitutionFilter;
2929
import it.pagopa.selfcare.user.exception.InvalidRequestException;
30-
import it.pagopa.selfcare.user.exception.UserRoleAlreadyPresentException;
30+
import it.pagopa.selfcare.user.exception.NumberOfAdminsExceededException;
3131
import it.pagopa.selfcare.user.exception.ResourceNotFoundException;
32+
import it.pagopa.selfcare.user.exception.UserRoleAlreadyPresentException;
3233
import it.pagopa.selfcare.user.mapper.UserMapper;
3334
import it.pagopa.selfcare.user.model.LoggedUser;
3435
import it.pagopa.selfcare.user.model.OnboardedProduct;
@@ -48,13 +49,7 @@
4849
import org.mockito.ArgumentCaptor;
4950
import org.mockito.Mockito;
5051
import org.mockito.Spy;
51-
import org.openapi.quarkus.user_registry_json.model.BirthDateCertifiableSchema;
52-
import org.openapi.quarkus.user_registry_json.model.EmailCertifiableSchema;
53-
import org.openapi.quarkus.user_registry_json.model.FamilyNameCertifiableSchema;
54-
import org.openapi.quarkus.user_registry_json.model.NameCertifiableSchema;
55-
import org.openapi.quarkus.user_registry_json.model.UserResource;
56-
import org.openapi.quarkus.user_registry_json.model.UserSearchDto;
57-
import org.openapi.quarkus.user_registry_json.model.WorkContactResource;
52+
import org.openapi.quarkus.user_registry_json.model.*;
5853

5954
import java.time.LocalDate;
6055
import java.time.OffsetDateTime;
@@ -1000,8 +995,10 @@ void testCreateOrUpdateUser_UpdateUser_UserRegistryUpdateFailedByFiscalCode() {
1000995
// Prepare test data
1001996
CreateUserDto createUserDto = new CreateUserDto();
1002997
CreateUserDto.User user = new CreateUserDto.User();
998+
CreateUserDto.Product product = new CreateUserDto.Product();
1003999
user.setFiscalCode("fiscalCode");
10041000
createUserDto.setUser(user);
1001+
createUserDto.setProduct(product);
10051002
LoggedUser loggedUser = LoggedUser.builder().build();
10061003

10071004
// Mock external dependencies
@@ -1049,6 +1046,52 @@ void testCreateOrUpdateUser_UpdateUser_UserInstitutionUpdateFailedByFiscalCode()
10491046
verify(userInstitutionService).persistOrUpdate(any());
10501047
}
10511048

1049+
@Test
1050+
void testCreateOrUpdateUser_UpdateUser_SuccessNumberOfAdminsNotExceededByFiscalCode() {
1051+
// Prepare test data
1052+
CreateUserDto createUserDto = new CreateUserDto();
1053+
CreateUserDto.User user = new CreateUserDto.User();
1054+
user.setFiscalCode("fiscalCode");
1055+
CreateUserDto.Product createUserProduct = new CreateUserDto.Product();
1056+
createUserProduct.setProductId("prod-pagopa");
1057+
createUserProduct.setProductRoles(List.of("admin", "admin-psp"));
1058+
createUserDto.setProduct(createUserProduct);
1059+
createUserDto.setUser(user);
1060+
LoggedUser loggedUser = LoggedUser.builder().build();
1061+
1062+
// Mock external dependencies
1063+
when(userRegistryApi.searchUsingPOST(any(), any())).thenReturn(Uni.createFrom().item(userResource));
1064+
when(userInstitutionService.countInstitutionProductRoles(any(), any(), any())).thenReturn(Uni.createFrom().item(2L));
1065+
1066+
// Call and verify the method
1067+
UniAssertSubscriber<CreateOrUpdateUserByFiscalCodeResponse> subscriber = userService.createOrUpdateUserByFiscalCode(createUserDto, loggedUser)
1068+
.subscribe().withSubscriber(UniAssertSubscriber.create()).awaitItem();
1069+
CreateOrUpdateUserByFiscalCodeResponse response = subscriber.awaitItem().getItem();
1070+
assertEquals(userId.toString(), response.getUserId());
1071+
}
1072+
1073+
@Test
1074+
void testCreateOrUpdateUser_UpdateUser_NumberOfAdminsExceededByFiscalCode() {
1075+
// Prepare test data
1076+
CreateUserDto createUserDto = new CreateUserDto();
1077+
CreateUserDto.User user = new CreateUserDto.User();
1078+
user.setFiscalCode("fiscalCode");
1079+
CreateUserDto.Product createUserProduct = new CreateUserDto.Product();
1080+
createUserProduct.setProductId("prod-pagopa");
1081+
createUserProduct.setProductRoles(List.of("admin", "admin-psp"));
1082+
createUserDto.setProduct(createUserProduct);
1083+
createUserDto.setUser(user);
1084+
LoggedUser loggedUser = LoggedUser.builder().build();
1085+
1086+
// Mock external dependencies
1087+
when(userInstitutionService.countInstitutionProductRoles(any(), any(), any())).thenReturn(Uni.createFrom().item(3L));
1088+
1089+
// Call and verify the method
1090+
userService.createOrUpdateUserByFiscalCode(createUserDto, loggedUser)
1091+
.subscribe().withSubscriber(UniAssertSubscriber.create())
1092+
.assertFailedWith(NumberOfAdminsExceededException.class, "Maximum number of 3 admin-psp reached for prod-pagopa");
1093+
}
1094+
10521095
@Test
10531096
void testCreateOrUpdateUser_UpdateUser_ProductAlreadyOnboarded() {
10541097
// Prepare test data

0 commit comments

Comments
 (0)