From 12a4cb48bc4fc57761fcf105e962e926befa6e02 Mon Sep 17 00:00:00 2001 From: flaminiaScarciofolo <113031535+flaminiaScarciofolo@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:39:21 +0100 Subject: [PATCH] [SELC-4532] Fix: Refactor API to retrieve list of user's institution after dashboard login (#379) --- .../connector/api/UserApiConnector.java | 4 +- .../model/institution/InstitutionBase.java | 16 ++ .../rest/docs/openapi/selfcare-user-docs.json | 218 ++++++++++++++---- .../connector/rest/UserConnectorImpl.java | 16 +- .../rest/model/mapper/InstitutionMapper.java | 26 +-- .../connector/rest/UserConnectorImplTest.java | 30 +-- .../dashboard/core/UserV2Service.java | 4 +- .../dashboard/core/UserV2ServiceImpl.java | 6 +- .../dashboard/core/UserV2ServiceImplTest.java | 8 +- .../web/controller/UserV2Controller.java | 4 +- .../mapper/InstitutionResourceMapper.java | 2 + .../web/controller/UserV2ControllerTest.java | 14 +- 12 files changed, 245 insertions(+), 103 deletions(-) create mode 100644 connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionBase.java diff --git a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/api/UserApiConnector.java b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/api/UserApiConnector.java index 195bbfc70..babd502e1 100644 --- a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/api/UserApiConnector.java +++ b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/api/UserApiConnector.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.connector.api; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; @@ -8,7 +8,7 @@ public interface UserApiConnector { - List getUserProducts(String userId); + List getUserInstitutions(String userId); User getUserById(String userId); diff --git a/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionBase.java b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionBase.java new file mode 100644 index 000000000..a39dbe1b6 --- /dev/null +++ b/connector-api/src/main/java/it/pagopa/selfcare/dashboard/connector/model/institution/InstitutionBase.java @@ -0,0 +1,16 @@ +package it.pagopa.selfcare.dashboard.connector.model.institution; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +@Data +@Slf4j +public class InstitutionBase { + + private String id; + private String name; + private String userRole; + private String status; + private String parentDescription; + +} diff --git a/connector/rest/docs/openapi/selfcare-user-docs.json b/connector/rest/docs/openapi/selfcare-user-docs.json index da24cbc2d..cd7e3189e 100644 --- a/connector/rest/docs/openapi/selfcare-user-docs.json +++ b/connector/rest/docs/openapi/selfcare-user-docs.json @@ -878,6 +878,105 @@ ] } }, + "/users/{userId}/institution/{institutionId}": { + "get": { + "tags": [ + "User Controller" + ], + "summary": "The retrieveUsers function is used to retrieve a list of users from the UserInstitution collection and userRegistry.\nAt first it try to retrieve a UserInstitution document associated with a logged user (admin)\nIf this userInstitution object is not null, so user has AdminRole, it try to retriew the userInstitutions filtered by given institutionId, roles, states, products and productRoles\nand optional given personId, otherwise it do the same query using the logged user id instead of personId.\nAfter that it retrieve personal user data, foreach userId retrieved, from userRegistry and return a stream of UserDataResponse objects containing the requested user data.", + "parameters": [ + { + "name": "institutionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "personId", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "productRoles", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "products", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "roles", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "states", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDataResponse" + } + } + } + } + }, + "401": { + "description": "Not Authorized" + }, + "403": { + "description": "Not Allowed" + } + }, + "security": [ + { + "SecurityScheme": [] + } + ] + } + }, "/users/{userId}/institutions/{institutionId}/products/{productId}": { "delete": { "tags": [ @@ -928,7 +1027,7 @@ ] } }, - "/users/{userId}/products": { + "/users/{userId}/institutions": { "get": { "tags": [ "User Controller" @@ -967,7 +1066,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UserProductsResponse" + "$ref": "#/components/schemas/UserInfoResponse" } } } @@ -1071,29 +1170,6 @@ ], "type": "string" }, - "InstitutionProducts": { - "type": "object", - "properties": { - "institutionId": { - "type": "string" - }, - "institutionName": { - "type": "string" - }, - "institutionRootName": { - "type": "string" - }, - "userMailUuid": { - "type": "string" - }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OnboardedProductResponse" - } - } - } - }, "LocalDate": { "format": "date", "type": "string", @@ -1254,6 +1330,44 @@ } } }, + "UserDataResponse": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "institutionId": { + "type": "string" + }, + "institutionDescription": { + "type": "string" + }, + "institutionRootName": { + "type": "string" + }, + "userMailUuid": { + "type": "string" + }, + "role": { + "type": "string" + }, + "status": { + "type": "string" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OnboardedProductResponse" + } + }, + "userResponse": { + "$ref": "#/components/schemas/UserResponse" + } + } + }, "UserDetailResponse": { "type": "object", "properties": { @@ -1280,6 +1394,20 @@ } } }, + "UserInfoResponse": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "institutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserInstitutionRoleResponse" + } + } + } + }, "UserInstitutionResponse": { "type": "object", "properties": { @@ -1309,6 +1437,26 @@ } } }, + "UserInstitutionRoleResponse": { + "type": "object", + "properties": { + "institutionId": { + "type": "string" + }, + "institutionName": { + "type": "string" + }, + "institutionRootName": { + "type": "string" + }, + "role": { + "$ref": "#/components/schemas/PartyRole" + }, + "status": { + "$ref": "#/components/schemas/OnboardedProductState" + } + } + }, "UserNotificationResponse": { "type": "object", "properties": { @@ -1364,20 +1512,6 @@ } } }, - "UserProductsResponse": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "bindings": { - "type": "array", - "items": { - "$ref": "#/components/schemas/InstitutionProducts" - } - } - } - }, "UserResponse": { "required": [ "id", @@ -1403,6 +1537,12 @@ }, "email": { "type": "string" + }, + "workContacts": { + "type": "object", + "additionalProperties": { + "type": "string" + } } } }, diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImpl.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImpl.java index e8fccadd1..58eab611b 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImpl.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImpl.java @@ -2,7 +2,7 @@ import it.pagopa.selfcare.commons.base.logging.LogUtils; import it.pagopa.selfcare.dashboard.connector.api.UserApiConnector; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; import it.pagopa.selfcare.dashboard.connector.rest.client.UserApiRestClient; @@ -12,7 +12,7 @@ import it.pagopa.selfcare.user.generated.openapi.v1.dto.OnboardedProductState; import it.pagopa.selfcare.user.generated.openapi.v1.dto.PermissionTypeEnum; import it.pagopa.selfcare.user.generated.openapi.v1.dto.SearchUserDto; -import it.pagopa.selfcare.user.generated.openapi.v1.dto.UserProductsResponse; +import it.pagopa.selfcare.user.generated.openapi.v1.dto.UserInfoResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -33,16 +33,16 @@ public class UserConnectorImpl implements UserApiConnector { private final UserMapper userMapper; @Override - public List getUserProducts(String userId) { + public List getUserInstitutions(String userId) { log.trace("getUserProducts start"); - UserProductsResponse productsInfoUsingGET = userApiRestClient._usersUserIdProductsGet(userId, null, + UserInfoResponse userInfoResponse = userApiRestClient._usersUserIdInstitutionsGet(userId, null, List.of(ACTIVE.name(), PENDING.name(), TOBEVALIDATED.name())).getBody(); - if(Objects.isNull(productsInfoUsingGET) || - Objects.isNull(productsInfoUsingGET.getBindings())) return List.of(); + if(Objects.isNull(userInfoResponse) || + Objects.isNull(userInfoResponse.getInstitutions())) return List.of(); - List result = productsInfoUsingGET.getBindings().stream() - .map(institutionMapper::toInstitutionInfo) + List result = userInfoResponse.getInstitutions().stream() + .map(institutionMapper::toInstitutionBase) .toList(); log.debug("getUserProducts result = {}", result); log.trace("getUserProducts end"); diff --git a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java index 9d49a4bca..148c10f13 100644 --- a/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java +++ b/connector/rest/src/main/java/it/pagopa/selfcare/dashboard/connector/rest/model/mapper/InstitutionMapper.java @@ -7,7 +7,7 @@ import it.pagopa.selfcare.dashboard.connector.model.institution.Institution; import it.pagopa.selfcare.dashboard.connector.model.product.PartyProduct; import it.pagopa.selfcare.dashboard.connector.model.product.ProductOnBoardingStatus; -import it.pagopa.selfcare.user.generated.openapi.v1.dto.OnboardedProductResponse; +import it.pagopa.selfcare.user.generated.openapi.v1.dto.UserInstitutionRoleResponse; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Named; @@ -21,6 +21,13 @@ @Mapper(componentModel = "spring") public interface InstitutionMapper { + @Mapping(target = "id", source = "institutionId") + @Mapping(target = "name", source = "institutionName") + @Mapping(target = "parentDescription", source = "institutionRootName") + @Mapping(target = "userRole", expression = "java(institutionProducts.getRole().name())") + @Mapping(target = "status", expression = "java(institutionProducts.getStatus().name())") + InstitutionBase toInstitutionBase(UserInstitutionRoleResponse institutionProducts); + @Mapping(target = "id", source = "institutionId") @Mapping(target = "description", source = "institutionName") @Mapping(target = "parentDescription", source = "institutionRootName") @@ -51,13 +58,6 @@ public interface InstitutionMapper { @Mapping(target = "supportContact", ignore = true) InstitutionInfo toInstitutionInfo(InstitutionResponse institutionResponse, InstitutionUpdate institutionUpdate); - - @Mapping(target = "id", source = "institutionId") - @Mapping(target = "description", source = "institutionName") - @Mapping(target = "parentDescription", source = "institutionRootName") - @Mapping(target = "status", source = ".", qualifiedByName = "toStatus") - InstitutionInfo toInstitutionInfo(it.pagopa.selfcare.user.generated.openapi.v1.dto.InstitutionProducts institutionProducts); - @Mapping(target = "category", expression = "java(getCategory(institution.getAttributes()))") Institution toInstitution(InstitutionResponse institution); @@ -123,14 +123,4 @@ default RelationshipState toStatus(InstitutionProducts institutionProducts) { .map(statusEnum -> RelationshipState.valueOf(statusEnum.name())) .orElse(null); } - - @Named("toStatus") - default RelationshipState toStatus(it.pagopa.selfcare.user.generated.openapi.v1.dto.InstitutionProducts institutionProducts) { - return institutionProducts.getProducts().stream() - .map(OnboardedProductResponse::getStatus) - .sorted() - .findFirst() - .map(statusEnum -> RelationshipState.valueOf(statusEnum.name())) - .orElse(null); - } } diff --git a/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImplTest.java b/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImplTest.java index d51059c76..f37587e81 100644 --- a/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImplTest.java +++ b/connector/rest/src/test/java/it/pagopa/selfcare/dashboard/connector/rest/UserConnectorImplTest.java @@ -1,7 +1,7 @@ package it.pagopa.selfcare.dashboard.connector.rest; import it.pagopa.selfcare.dashboard.connector.exception.ResourceNotFoundException; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; import it.pagopa.selfcare.dashboard.connector.rest.client.UserApiRestClient; @@ -55,32 +55,32 @@ void setup(){ @Test void getUserProductsNotFound() { - - when(userApiRestClient._usersUserIdProductsGet("userID", null, + when(userApiRestClient._usersUserIdInstitutionsGet("userID", null, List.of(ACTIVE.name(), PENDING.name(), TOBEVALIDATED.name()))).thenThrow(ResourceNotFoundException.class); - Assertions.assertThrows(ResourceNotFoundException.class, () -> userConnector.getUserProducts("userID")); + Assertions.assertThrows(ResourceNotFoundException.class, () -> userConnector.getUserInstitutions("userID")); } @Test void getUserProductsFound() { - UserProductsResponse userProductsResponse = getUserProductsResponse(); - when(userApiRestClient._usersUserIdProductsGet("userID", null, + UserInfoResponse userProductsResponse = getUserProductsResponse(); + when(userApiRestClient._usersUserIdInstitutionsGet("userID", null, List.of(ACTIVE.name(), PENDING.name(), TOBEVALIDATED.name()))).thenReturn(ResponseEntity.ok(userProductsResponse)); - List result = userConnector.getUserProducts("userID"); + List result = userConnector.getUserInstitutions("userID"); Assertions.assertEquals(1, result.size()); - Assertions.assertEquals(ACTIVE, result.get(0).getStatus()); + Assertions.assertEquals(ACTIVE.name(), result.get(0).getStatus()); Assertions.assertEquals("institutionId", result.get(0).getId()); - Assertions.assertEquals("institutionName", result.get(0).getDescription()); + Assertions.assertEquals("institutionName", result.get(0).getName()); } - private static UserProductsResponse getUserProductsResponse() { - UserProductsResponse userProductsResponse = new UserProductsResponse(); - userProductsResponse.setId("userID"); - InstitutionProducts institutionProducts = new InstitutionProducts(); + private static UserInfoResponse getUserProductsResponse() { + UserInfoResponse userProductsResponse = new UserInfoResponse(); + userProductsResponse.setUserId("userId"); + UserInstitutionRoleResponse institutionProducts = new UserInstitutionRoleResponse(); institutionProducts.setInstitutionId("institutionId"); institutionProducts.setInstitutionName("institutionName"); - institutionProducts.setProducts(getOnboardedProduct()); - userProductsResponse.setBindings(List.of(institutionProducts)); + institutionProducts.setStatus(OnboardedProductState.ACTIVE); + institutionProducts.setRole(PartyRole.MANAGER); + userProductsResponse.setInstitutions(List.of(institutionProducts)); return userProductsResponse; } diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2Service.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2Service.java index 1be187ad7..b2351e9c3 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2Service.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2Service.java @@ -1,6 +1,6 @@ package it.pagopa.selfcare.dashboard.core; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; @@ -8,7 +8,7 @@ public interface UserV2Service { - Collection getInstitutions(String userId); + Collection getInstitutions(String userId); void deleteUserProduct(String userId, String institutionId, String productId); diff --git a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java index 117ebc374..226c39109 100644 --- a/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java +++ b/core/src/main/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImpl.java @@ -5,7 +5,7 @@ import it.pagopa.selfcare.dashboard.connector.api.UserApiConnector; import it.pagopa.selfcare.dashboard.connector.exception.ResourceNotFoundException; import it.pagopa.selfcare.dashboard.connector.model.institution.Institution; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; import lombok.RequiredArgsConstructor; @@ -27,9 +27,9 @@ public class UserV2ServiceImpl implements UserV2Service { private final UserGroupService userGroupService; @Override - public Collection getInstitutions(String userId) { + public Collection getInstitutions(String userId) { log.trace("getInstitutions start"); - Collection result = userApiConnector.getUserProducts(userId); + Collection result = userApiConnector.getUserInstitutions(userId); log.debug(LogUtils.CONFIDENTIAL_MARKER, "getInstitutions result = {}", result); log.trace("getInstitutions end"); return result; diff --git a/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java b/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java index 451dc855d..8bf73a2b3 100644 --- a/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java +++ b/core/src/test/java/it/pagopa/selfcare/dashboard/core/UserV2ServiceImplTest.java @@ -5,7 +5,7 @@ import it.pagopa.selfcare.dashboard.connector.api.UserRegistryConnector; import it.pagopa.selfcare.dashboard.connector.exception.ResourceNotFoundException; import it.pagopa.selfcare.dashboard.connector.model.institution.Institution; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; import it.pagopa.selfcare.dashboard.connector.model.user.WorkContact; @@ -47,11 +47,11 @@ class UserV2ServiceImplTest { void getInstitutions() { // given String userId = "userId"; - InstitutionInfo expectedInstitutionInfo = new InstitutionInfo(); + InstitutionBase expectedInstitutionInfo = new InstitutionBase(); - when(userApiConnector.getUserProducts(userId)).thenReturn(List.of(expectedInstitutionInfo)); + when(userApiConnector.getUserInstitutions(userId)).thenReturn(List.of(expectedInstitutionInfo)); // when - Collection institutions = userService.getInstitutions(userId); + Collection institutions = userService.getInstitutions(userId); assertNotNull(institutions); assertEquals(1, institutions.size()); diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/UserV2Controller.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/UserV2Controller.java index d0347d12e..d43d5fada 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/UserV2Controller.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/controller/UserV2Controller.java @@ -9,7 +9,7 @@ import it.pagopa.selfcare.commons.base.logging.LogUtils; import it.pagopa.selfcare.commons.base.security.SelfCareUser; import it.pagopa.selfcare.commons.web.model.Problem; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.User; import it.pagopa.selfcare.dashboard.core.UserV2Service; import it.pagopa.selfcare.dashboard.web.InstitutionBaseResource; @@ -48,7 +48,7 @@ public List getInstitutions(Authentication authenticati log.trace("getInstitutions start"); String userId = ((SelfCareUser) authentication.getPrincipal()).getId(); - Collection institutions = userService.getInstitutions(userId); + Collection institutions = userService.getInstitutions(userId); List result = institutions.stream() .map(institutionResourceMapper::toResource) diff --git a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/mapper/InstitutionResourceMapper.java b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/mapper/InstitutionResourceMapper.java index 153af7a04..443cd1892 100644 --- a/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/mapper/InstitutionResourceMapper.java +++ b/web/src/main/java/it/pagopa/selfcare/dashboard/web/model/mapper/InstitutionResourceMapper.java @@ -26,6 +26,8 @@ public interface InstitutionResourceMapper { @Mapping(target = "userRole", expression = "java(toUserRole(model.getId(), model.getStatus()))") InstitutionBaseResource toResource(InstitutionInfo model); + InstitutionBaseResource toResource(InstitutionBase model); + @Mapping(target = "name", source = "description") @Mapping(target = "fiscalCode", source = "taxCode") @Mapping(target = "mailAddress", source = "digitalAddress") diff --git a/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/UserV2ControllerTest.java b/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/UserV2ControllerTest.java index dc62501f1..df51ebe8a 100644 --- a/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/UserV2ControllerTest.java +++ b/web/src/test/java/it/pagopa/selfcare/dashboard/web/controller/UserV2ControllerTest.java @@ -4,8 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import it.pagopa.selfcare.commons.base.security.SelfCareUser; import it.pagopa.selfcare.commons.utils.TestUtils; -import it.pagopa.selfcare.dashboard.connector.model.institution.GeographicTaxonomy; -import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo; +import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionBase; import it.pagopa.selfcare.dashboard.connector.model.user.Certification; import it.pagopa.selfcare.dashboard.connector.model.user.MutableUserFieldsDto; import it.pagopa.selfcare.dashboard.connector.model.user.User; @@ -42,10 +41,6 @@ import static org.hamcrest.Matchers.emptyString; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; -import static org.hamcrest.Matchers.in; -import static org.junit.jupiter.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.*; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -90,9 +85,8 @@ void getInstitutions_institutionInfoNotNull() throws Exception { Authentication authentication = mock(Authentication.class); when(authentication.getPrincipal()).thenReturn(SelfCareUser.builder(userId).build()); - InstitutionInfo expectedInstitution = mockInstance(new InstitutionInfo()); - expectedInstitution.setGeographicTaxonomies(List.of(mockInstance(new GeographicTaxonomy()))); - List expectedInstitutionInfos = new ArrayList<>(); + InstitutionBase expectedInstitution = mockInstance(new InstitutionBase()); + List expectedInstitutionInfos = new ArrayList<>(); expectedInstitutionInfos.add(expectedInstitution); when(userServiceMock.getInstitutions(userId)).thenReturn(expectedInstitutionInfos); // when @@ -110,7 +104,7 @@ void getInstitutions_institutionInfoNotNull() throws Exception { assertNotNull(resources); assertFalse(resources.isEmpty()); - assertEquals(resources.get(0).getStatus(), expectedInstitution.getStatus().name()); + assertEquals(resources.get(0).getStatus(), expectedInstitution.getStatus()); assertNotNull(resources.get(0).getUserRole()); verify(userServiceMock, times(1)) .getInstitutions(userId);