Skip to content

Commit cb34302

Browse files
fix: updated RegistryManagerPDNDInfocamere logic (#956)
1 parent a39e509 commit cb34302

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPDNDInfocamere.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ public RegistryManagerPDNDInfocamere(Onboarding onboarding, InfocamerePdndApi in
3939
@Override
4040
public Uni<Onboarding> customValidation(Product product) {
4141
if (isIdPayMerchantProduct(product)) {
42-
return validateAtecoCodes();
43-
}
44-
if (isPrivatePersonInstitution()) {
45-
return manageTaxCode();
42+
return validateAtecoCodes()
43+
.chain(() -> isPrivatePersonInstitution()
44+
? manageTaxCode()
45+
: Uni.createFrom().item(onboarding));
4646
}
4747
return Uni.createFrom().item(onboarding);
4848
}
@@ -108,7 +108,7 @@ private Onboarding updateOnboardingWithUserId(Onboarding onboarding, String user
108108
*/
109109
private Uni<Onboarding> validateAtecoCodes() {
110110
List<String> institutionAtecoCodes = onboarding.getInstitution().getAtecoCodes();
111-
111+
112112
if (Objects.isNull(institutionAtecoCodes) || institutionAtecoCodes.isEmpty()) {
113113
return Uni.createFrom().failure(new InvalidRequestException("Institution must have at least one ATECO code"));
114114
}

apps/onboarding-ms/src/test/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPDNDInfocamereTest.java

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,13 +191,25 @@ void customValidation_withIdPayMerchantProduct_noAllowedAtecoCodes() {
191191
@Test
192192
void customValidation_withPrivatePersonInstitution_userSearchSuccessful() {
193193
// given
194+
String taxCode = "RSSMRA80A01H501T";
195+
String allowedAtecoCodes = "01.11.00";
194196
onboarding.getInstitution().setInstitutionType(InstitutionType.PRV_PF);
195-
onboarding.getInstitution().setTaxCode("RSSMRA80A01H501T");
197+
onboarding.getInstitution().setTaxCode(taxCode);
198+
onboarding.getInstitution().setAtecoCodes(List.of("01.11.00"));
199+
200+
when(product.getId()).thenReturn("prod-idpay-merchant");
201+
202+
PDNDBusinessResource pdndResource = new PDNDBusinessResource();
203+
pdndResource.setAtecoCodes(List.of("01.11.00"));
204+
205+
when(pdndVisuraInfoCamereControllerApi.institutionVisuraPdndByTaxCodeUsingGET(taxCode))
206+
.thenReturn(Uni.createFrom().item(pdndResource));
207+
196208
registryManager = new RegistryManagerPDNDInfocamere(
197209
onboarding,
198210
infocamerePdndApi,
199211
userRegistryApi,
200-
Optional.empty(),
212+
Optional.of(allowedAtecoCodes),
201213
pdndVisuraInfoCamereControllerApi
202214
);
203215

@@ -222,13 +234,25 @@ void customValidation_withPrivatePersonInstitution_userSearchSuccessful() {
222234
@Test
223235
void customValidation_withPrivatePersonInstitution_userSearchThrowsException() {
224236
// given
237+
String taxCode = "RSSMRA80A01H501T";
238+
String allowedAtecoCodes = "01.11.00";
225239
onboarding.getInstitution().setInstitutionType(InstitutionType.PRV_PF);
226-
onboarding.getInstitution().setTaxCode("RSSMRA80A01H501T");
240+
onboarding.getInstitution().setTaxCode(taxCode);
241+
onboarding.getInstitution().setAtecoCodes(List.of("01.11.00"));
242+
243+
when(product.getId()).thenReturn("prod-idpay-merchant");
244+
245+
PDNDBusinessResource pdndResource = new PDNDBusinessResource();
246+
pdndResource.setAtecoCodes(List.of("01.11.00"));
247+
248+
when(pdndVisuraInfoCamereControllerApi.institutionVisuraPdndByTaxCodeUsingGET(taxCode))
249+
.thenReturn(Uni.createFrom().item(pdndResource));
250+
227251
registryManager = new RegistryManagerPDNDInfocamere(
228252
onboarding,
229253
infocamerePdndApi,
230254
userRegistryApi,
231-
Optional.empty(),
255+
Optional.of(allowedAtecoCodes),
232256
pdndVisuraInfoCamereControllerApi
233257
);
234258

0 commit comments

Comments
 (0)