|
27 | 27 | import it.pagopa.selfcare.user.entity.filter.OnboardedProductFilter; |
28 | 28 | import it.pagopa.selfcare.user.entity.filter.UserInstitutionFilter; |
29 | 29 | import it.pagopa.selfcare.user.exception.InvalidRequestException; |
30 | | -import it.pagopa.selfcare.user.exception.UserRoleAlreadyPresentException; |
31 | 30 | import it.pagopa.selfcare.user.exception.ResourceNotFoundException; |
| 31 | +import it.pagopa.selfcare.user.exception.UserRoleAlreadyPresentException; |
32 | 32 | import it.pagopa.selfcare.user.mapper.UserMapper; |
33 | 33 | import it.pagopa.selfcare.user.model.LoggedUser; |
34 | 34 | import it.pagopa.selfcare.user.model.OnboardedProduct; |
|
48 | 48 | import org.mockito.ArgumentCaptor; |
49 | 49 | import org.mockito.Mockito; |
50 | 50 | 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; |
| 51 | +import org.openapi.quarkus.user_registry_json.model.*; |
58 | 52 |
|
59 | 53 | import java.time.LocalDate; |
60 | 54 | import java.time.OffsetDateTime; |
@@ -1487,6 +1481,119 @@ void createManagerByUserIdUserInstitutionNotFound() { |
1487 | 1481 | .assertCompleted(); |
1488 | 1482 | } |
1489 | 1483 |
|
| 1484 | + @Test |
| 1485 | + void createUserByUserIdWithUpdatedMail() { |
| 1486 | + AddUserRoleDto addUserRoleDto = new AddUserRoleDto(); |
| 1487 | + addUserRoleDto.setInstitutionId("institutionId"); |
| 1488 | + addUserRoleDto.setUserMailUuid("newUserMailUuid"); |
| 1489 | + AddUserRoleDto.Product addUserRoleProduct = new AddUserRoleDto.Product(); |
| 1490 | + addUserRoleProduct.setProductId("test"); |
| 1491 | + addUserRoleProduct.setRole(MANAGER.name()); |
| 1492 | + addUserRoleDto.setProduct(addUserRoleProduct); |
| 1493 | + |
| 1494 | + LoggedUser loggedUser = LoggedUser.builder().build(); |
| 1495 | + OnboardedProduct product = new OnboardedProduct(); |
| 1496 | + product.setProductId("test"); |
| 1497 | + product.setProductRole("admin"); |
| 1498 | + product.setRole(MANAGER); |
| 1499 | + product.setStatus(OnboardedProductState.ACTIVE); |
| 1500 | + |
| 1501 | + UserInstitution userInstitution = new UserInstitution(); |
| 1502 | + OnboardedProduct onboardedProduct = new OnboardedProduct(); |
| 1503 | + onboardedProduct.setStatus(OnboardedProductState.ACTIVE); |
| 1504 | + List<OnboardedProduct> products = new ArrayList<>(); |
| 1505 | + products.add(product); |
| 1506 | + products.add(onboardedProduct); |
| 1507 | + userInstitution.setProducts(products); |
| 1508 | + userInstitution.setUserMailUuid("oldUserMailUuid"); |
| 1509 | + |
| 1510 | + when(userInstitutionService.retrieveFirstFilteredUserInstitution(anyMap())) |
| 1511 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1512 | + when(userInstitutionService.persistOrUpdate(userInstitution)) |
| 1513 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1514 | + |
| 1515 | + userService.createUserByUserId(addUserRoleDto, "userId", loggedUser) |
| 1516 | + .subscribe().withSubscriber(UniAssertSubscriber.create()) |
| 1517 | + .assertFailedWith(UserRoleAlreadyPresentException.class); |
| 1518 | + assertEquals("newUserMailUuid", userInstitution.getUserMailUuid()); |
| 1519 | + assertNotNull(userInstitution.getUserMailUpdatedAt()); |
| 1520 | + } |
| 1521 | + |
| 1522 | + @Test |
| 1523 | + void createUserByUserIdWithoutUpdatedMail() { |
| 1524 | + AddUserRoleDto addUserRoleDto = new AddUserRoleDto(); |
| 1525 | + addUserRoleDto.setInstitutionId("institutionId"); |
| 1526 | + addUserRoleDto.setUserMailUuid("userMailUuid"); |
| 1527 | + AddUserRoleDto.Product addUserRoleProduct = new AddUserRoleDto.Product(); |
| 1528 | + addUserRoleProduct.setProductId("test"); |
| 1529 | + addUserRoleProduct.setRole(MANAGER.name()); |
| 1530 | + addUserRoleDto.setProduct(addUserRoleProduct); |
| 1531 | + |
| 1532 | + LoggedUser loggedUser = LoggedUser.builder().build(); |
| 1533 | + OnboardedProduct product = new OnboardedProduct(); |
| 1534 | + product.setProductId("test"); |
| 1535 | + product.setProductRole("admin"); |
| 1536 | + product.setRole(MANAGER); |
| 1537 | + product.setStatus(OnboardedProductState.ACTIVE); |
| 1538 | + |
| 1539 | + UserInstitution userInstitution = new UserInstitution(); |
| 1540 | + OnboardedProduct onboardedProduct = new OnboardedProduct(); |
| 1541 | + onboardedProduct.setStatus(OnboardedProductState.ACTIVE); |
| 1542 | + List<OnboardedProduct> products = new ArrayList<>(); |
| 1543 | + products.add(product); |
| 1544 | + products.add(onboardedProduct); |
| 1545 | + userInstitution.setProducts(products); |
| 1546 | + userInstitution.setUserMailUuid("userMailUuid"); |
| 1547 | + |
| 1548 | + when(userInstitutionService.retrieveFirstFilteredUserInstitution(anyMap())) |
| 1549 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1550 | + when(userInstitutionService.persistOrUpdate(userInstitution)) |
| 1551 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1552 | + |
| 1553 | + userService.createUserByUserId(addUserRoleDto, "userId", loggedUser) |
| 1554 | + .subscribe().withSubscriber(UniAssertSubscriber.create()) |
| 1555 | + .assertFailedWith(UserRoleAlreadyPresentException.class); |
| 1556 | + assertEquals("userMailUuid", userInstitution.getUserMailUuid()); |
| 1557 | + assertNull(userInstitution.getUserMailUpdatedAt()); |
| 1558 | + } |
| 1559 | + |
| 1560 | + @Test |
| 1561 | + void createUserByUserIdWithNullUserMailFromRequest() { |
| 1562 | + AddUserRoleDto addUserRoleDto = new AddUserRoleDto(); |
| 1563 | + addUserRoleDto.setInstitutionId("institutionId"); |
| 1564 | + AddUserRoleDto.Product addUserRoleProduct = new AddUserRoleDto.Product(); |
| 1565 | + addUserRoleProduct.setProductId("test"); |
| 1566 | + addUserRoleProduct.setRole(MANAGER.name()); |
| 1567 | + addUserRoleDto.setProduct(addUserRoleProduct); |
| 1568 | + |
| 1569 | + LoggedUser loggedUser = LoggedUser.builder().build(); |
| 1570 | + OnboardedProduct product = new OnboardedProduct(); |
| 1571 | + product.setProductId("test"); |
| 1572 | + product.setProductRole("admin"); |
| 1573 | + product.setRole(MANAGER); |
| 1574 | + product.setStatus(OnboardedProductState.ACTIVE); |
| 1575 | + |
| 1576 | + UserInstitution userInstitution = new UserInstitution(); |
| 1577 | + OnboardedProduct onboardedProduct = new OnboardedProduct(); |
| 1578 | + onboardedProduct.setStatus(OnboardedProductState.ACTIVE); |
| 1579 | + List<OnboardedProduct> products = new ArrayList<>(); |
| 1580 | + products.add(product); |
| 1581 | + products.add(onboardedProduct); |
| 1582 | + userInstitution.setProducts(products); |
| 1583 | + userInstitution.setUserMailUuid("userMailUuid"); |
| 1584 | + |
| 1585 | + when(userInstitutionService.retrieveFirstFilteredUserInstitution(anyMap())) |
| 1586 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1587 | + when(userInstitutionService.persistOrUpdate(userInstitution)) |
| 1588 | + .thenReturn(Uni.createFrom().item(userInstitution)); |
| 1589 | + |
| 1590 | + userService.createUserByUserId(addUserRoleDto, "userId", loggedUser) |
| 1591 | + .subscribe().withSubscriber(UniAssertSubscriber.create()) |
| 1592 | + .assertFailedWith(UserRoleAlreadyPresentException.class); |
| 1593 | + assertEquals("userMailUuid", userInstitution.getUserMailUuid()); |
| 1594 | + assertNull(userInstitution.getUserMailUpdatedAt()); |
| 1595 | + } |
| 1596 | + |
1490 | 1597 | private UserInstitution createUserInstitutionWithoutManagerRole() { |
1491 | 1598 | UserInstitution userInstitution = new UserInstitution(); |
1492 | 1599 | OnboardedProduct onboardedProduct = new OnboardedProduct(); |
|
0 commit comments