Skip to content

Commit

Permalink
SELC-4719 feat: modified invocation to getInstitutions API to work wi…
Browse files Browse the repository at this point in the history
…th origin and originId when taxCode is not present
  • Loading branch information
empassaro committed Apr 18, 2024
1 parent 13b192e commit 3f80a18
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,7 @@ public class CompletionServiceDefault implements CompletionService {
public String createInstitutionAndPersistInstitutionId(Onboarding onboarding) {

Institution institution = onboarding.getInstitution();

InstitutionsResponse institutionsResponse = institutionApi.getInstitutionsUsingGET(institution.getTaxCode(), institution.getSubunitCode(), null, null);
InstitutionsResponse institutionsResponse = getInstitutionsByFilters(institution);
if(Objects.nonNull(institutionsResponse.getInstitutions()) && institutionsResponse.getInstitutions().size() > 1){
throw new GenericOnboardingException("List of institutions is ambiguous, it is empty or has more than one element!!");
}
Expand All @@ -111,6 +110,17 @@ public String createInstitutionAndPersistInstitutionId(Onboarding onboarding) {
return institutionResponse.getId();
}

private InstitutionsResponse getInstitutionsByFilters(Institution institution) {
InstitutionsResponse institutionsResponse;
if(!Objects.isNull(institution.getTaxCode())) {
institutionsResponse = institutionApi.getInstitutionsUsingGET(institution.getTaxCode(), institution.getSubunitCode(), null, null);
} else {
String origin = !Objects.isNull(institution.getOrigin()) ? institution.getOrigin().getValue() : null;
institutionsResponse = institutionApi.getInstitutionsUsingGET(null, null, origin, institution.getOriginId());
}
return institutionsResponse;
}

/**
* Function that creates institution based on institution type and Origin,
* Origin indicates which is the indexes where data come from, for ex. IPA comes from index of Pubbliche Amministrazioni
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateSaAnac
Onboarding onboarding = createOnboarding();

Institution institutionSa = new Institution();
institutionSa.setTaxCode("taxCode");
institutionSa.setInstitutionType(InstitutionType.SA);
institutionSa.setOrigin(Origin.ANAC);
onboarding.setInstitution(institutionSa);
Expand All @@ -155,10 +156,11 @@ void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateSaAnac
}

@Test
void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateAsIvass() {
void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateAsIvassWithTaxCode() {
Onboarding onboarding = createOnboarding();

Institution institution = new Institution();
institution.setTaxCode("taxCode");
institution.setInstitutionType(InstitutionType.AS);
institution.setOrigin(Origin.IVASS);
onboarding.setInstitution(institution);
Expand All @@ -173,11 +175,32 @@ void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateAsIvas

mockOnboardingUpdateAndExecuteCreateInstitution(onboarding, institutionResponse);
}

@Test
void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreateAsIvassWithOrigin() {
Onboarding onboarding = createOnboarding();

Institution institution = new Institution();
institution.setInstitutionType(InstitutionType.AS);
institution.setOrigin(Origin.IVASS);
institution.setOriginId("originId");
onboarding.setInstitution(institution);

InstitutionsResponse response = new InstitutionsResponse();
when(institutionApi.getInstitutionsUsingGET(null, null, Origin.IVASS.getValue(), "originId"))
.thenReturn(response);

InstitutionResponse institutionResponse = dummyInstitutionResponse();
when(institutionApi.createInstitutionFromIvassUsingPOST(any())).thenReturn(institutionResponse);

mockOnboardingUpdateAndExecuteCreateInstitution(onboarding, institutionResponse);
}
@Test
void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreatePgAde() {
Onboarding onboarding = createOnboarding();

Institution institution = new Institution();
institution.setTaxCode("taxCode");
institution.setInstitutionType(InstitutionType.PG);
institution.setOrigin(Origin.ADE);
onboarding.setInstitution(institution);
Expand All @@ -197,6 +220,7 @@ void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreatePaAOO(
Onboarding onboarding = createOnboarding();

Institution institution = new Institution();
institution.setTaxCode("taxCode");
institution.setInstitutionType(InstitutionType.PA);
institution.setSubunitType(InstitutionPaSubunitType.AOO);
institution.setSubunitCode("code");
Expand Down Expand Up @@ -232,6 +256,7 @@ void createInstitutionAndPersistInstitutionId_notFoundInstitutionAndCreatePaUO()
Onboarding onboarding = createOnboarding();

Institution institution = new Institution();
institution.setTaxCode("taxCode");
institution.setInstitutionType(InstitutionType.PA);
institution.setSubunitType(InstitutionPaSubunitType.UO);
institution.setSubunitCode("code");
Expand Down

0 comments on commit 3f80a18

Please sign in to comment.