diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest.java index bc9a0ec4d..4f76bbe96 100644 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest.java +++ b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest.java @@ -23,7 +23,9 @@ import org.eclipse.microprofile.rest.client.inject.RestClient; import org.jboss.resteasy.core.ServerResponse; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; import org.mockito.ArgumentCaptor; import org.mockito.Mockito; import org.openapi.quarkus.core_json.api.DelegationApi; @@ -47,7 +49,6 @@ import static org.mockito.Mockito.*; @QuarkusTest -@TestProfile(CompletionServiceDefaultTest.UserMSProfile.class) public class CompletionServiceDefaultTest { @Inject @@ -94,7 +95,10 @@ public class CompletionServiceDefaultTest { userResource.setWorkContacts(map); } - public static class UserMSProfile implements QuarkusTestProfile { + @Nested + @TestProfile(CompletionServiceDefaultTest.UserMSProfile.class) + @TestInstance(TestInstance.Lifecycle.PER_CLASS) + class UserMSProfile implements QuarkusTestProfile { @Override public Map getConfigOverrides() { return Map.of("onboarding-functions.persist-users.active", "true"); @@ -147,7 +151,7 @@ void createOrRetrieveInstitutionSuccess() { InstitutionResponse serviceResponse = completionServiceDefault.createOrRetrieveInstitution(onboarding); assertNotNull(serviceResponse); - assertEquals(serviceResponse.getId(), "actual-id"); + assertEquals("actual-id", serviceResponse.getId()); } @Test @@ -718,6 +722,45 @@ void sendTestEmail() { .sendTestEmail(executionContext); } + @Nested + @TestProfile(CompletionServiceDefaultTest.ForceCreationProfile.class) + @TestInstance(TestInstance.Lifecycle.PER_CLASS) + class ForceCreationProfile implements QuarkusTestProfile { + + @Override + public Map getConfigOverrides() { + return Map.of("onboarding-functions.force-institution-persist", "true"); + } + } + + @Test + void forceInstitutionCreationFlagTrue(){ + // given + Onboarding onboarding = createOnboarding(); + + Institution institutionSa = new Institution(); + institutionSa.setTaxCode("taxCode"); + institutionSa.setInstitutionType(InstitutionType.SA); + institutionSa.setOrigin(Origin.ANAC); + onboarding.setInstitution(institutionSa); + + InstitutionsResponse institutionsResponse = new InstitutionsResponse(); + institutionsResponse.setInstitutions(List.of(dummyInstitutionResponse())); + + when(institutionApi.getInstitutionsUsingGET(any(), any(), any(), any())) + .thenReturn(institutionsResponse); + + PanacheUpdate panacheUpdateMock = mock(PanacheUpdate.class); + when(onboardingRepository.update("institution.id = ?1 and updatedAt = ?2 ", any(), any())) + .thenReturn(panacheUpdateMock); + + // when + completionServiceDefault.createInstitutionAndPersistInstitutionId(onboarding); + + // then + verify(institutionApi, times(1)).getInstitutionsUsingGET(any(), any(), any(), any()); + } + private User createDummyUser(Onboarding onboarding) { User user = new User(); user.setRole(PartyRole.MANAGER); @@ -729,10 +772,9 @@ private User createDummyUser(Onboarding onboarding) { private InstitutionResponse dummyInstitutionResponse() { InstitutionResponse response = new InstitutionResponse(); response.setId("response-id"); - return response; + return response; } - private Onboarding createOnboarding() { Onboarding onboarding = new Onboarding(); onboarding.setId(onboarding.getId()); diff --git a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java b/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java deleted file mode 100644 index 345f9b651..000000000 --- a/apps/onboarding-functions/src/test/java/it/pagopa/selfcare/onboarding/service/CompletionServiceDefaultTest2.java +++ /dev/null @@ -1,81 +0,0 @@ -package it.pagopa.selfcare.onboarding.service; - -import io.quarkus.test.InjectMock; -import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.QuarkusTestProfile; -import io.quarkus.test.junit.TestProfile; -import it.pagopa.selfcare.onboarding.common.InstitutionType; -import it.pagopa.selfcare.onboarding.common.Origin; -import it.pagopa.selfcare.onboarding.entity.Billing; -import it.pagopa.selfcare.onboarding.entity.Institution; -import it.pagopa.selfcare.onboarding.entity.Onboarding; -import jakarta.inject.Inject; -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.junit.jupiter.api.Test; -import org.openapi.quarkus.core_json.api.InstitutionApi; -import org.openapi.quarkus.core_json.model.InstitutionResponse; - -import java.util.List; -import java.util.Map; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; - -@QuarkusTest -@TestProfile(CompletionServiceDefaultTest2.ForceCreationProfile.class) -public class CompletionServiceDefaultTest2 { - final String productId = "productId"; - @Inject - CompletionServiceDefault completionServiceDefault; - - @RestClient - @InjectMock - InstitutionApi institutionApi; - public static class ForceCreationProfile implements QuarkusTestProfile { - @Override - public Map getConfigOverrides() { - return Map.of("onboarding-functions.force-institution-persist", "true"); - } - } - - - @Test - void forceInstitutionCreationFlagTrue(){ - Onboarding onboarding = createOnboarding(); - - Institution institutionSa = new Institution(); - institutionSa.setTaxCode("taxCode"); - institutionSa.setInstitutionType(InstitutionType.SA); - institutionSa.setOrigin(Origin.ANAC); - onboarding.setInstitution(institutionSa); - - InstitutionResponse institutionResponse = dummyInstitutionResponse(); - when(institutionApi.createInstitutionFromAnacUsingPOST(any())).thenReturn(institutionResponse); - - completionServiceDefault.createInstitutionAndPersistInstitutionId(onboarding); - - verify(institutionApi, times(1)).createInstitutionFromAnacUsingPOST(any()); - } - - private Onboarding createOnboarding() { - Onboarding onboarding = new Onboarding(); - onboarding.setId(onboarding.getId()); - onboarding.setProductId(productId); - onboarding.setPricingPlan("pricingPlan"); - onboarding.setUsers(List.of()); - onboarding.setInstitution(new Institution()); - onboarding.setUserRequestUid("example-uid"); - - Billing billing = new Billing(); - billing.setPublicServices(true); - billing.setRecipientCode("example"); - billing.setVatNumber("example"); - onboarding.setBilling(billing); - return onboarding; - } - private InstitutionResponse dummyInstitutionResponse() { - InstitutionResponse response = new InstitutionResponse(); - response.setId("response-id"); - return response; - } -}