Skip to content

Commit

Permalink
fix: recovering conflict if parent has an onboarding (#179)
Browse files Browse the repository at this point in the history
  • Loading branch information
manuraf authored Feb 16, 2024
1 parent f018911 commit 96932f3
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ private Uni<Boolean> verifyAlreadyOnboardingForProductAndProductParent(String in
return (Objects.nonNull(productParentId)
//If product has parent, I must verify if onboarding is present for parent and child
? checkIfAlreadyOnboardingAndValidateAllowedMap(productParentId, institutionTaxCode, institutionSubunitCode)
.onFailure(InvalidRequestException.class)
.onFailure(ResourceConflictException.class)
.recoverWithUni(ignore -> checkIfAlreadyOnboardingAndValidateAllowedMap(productId, institutionTaxCode, institutionSubunitCode))
//If product is a root, I must only verify if onboarding for root
: checkIfAlreadyOnboardingAndValidateAllowedMap(productId, institutionTaxCode, institutionSubunitCode)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -557,10 +557,11 @@ void onboardingSa_whenUserFoundedAndWillNotUpdate(UniAsserter asserter) {
}


void mockSimpleProductValidAssert(String productId, boolean hasParent, UniAsserter asserter) {
Product mockSimpleProductValidAssert(String productId, boolean hasParent, UniAsserter asserter) {
Product productResource = createDummyProduct(productId,hasParent);
asserter.execute(() -> when(productService.getProductIsValid(productId))
.thenReturn(productResource));
return productResource;
}

Product createDummyProduct(String productId, boolean hasParent) {
Expand All @@ -581,6 +582,7 @@ Product createDummyProduct(String productId, boolean hasParent) {
roleParentMapping.put(manager.getRole(), productRoleInfo);
parent.setRoleMappings(roleParentMapping);

productResource.setParentId(parent.getId());
productResource.setParent(parent);
}

Expand Down Expand Up @@ -621,12 +623,18 @@ void onboardingPsp_whenUserFoundedAndWillNotUpdateAndProductHasParent(UniAsserte
onboardingRequest.setProductId("productId");
Institution institutionPspRequest = new Institution();
institutionPspRequest.setInstitutionType(InstitutionType.PSP);
institutionPspRequest.setTaxCode("taxCode");
onboardingRequest.setInstitution(institutionPspRequest);

mockPersistOnboarding(asserter);
mockSimpleSearchPOSTAndPersist(asserter);
mockSimpleProductValidAssert(onboardingRequest.getProductId(), true, asserter);
mockVerifyOnboardingNotFound(asserter);
Product product = mockSimpleProductValidAssert(onboardingRequest.getProductId(), true, asserter);

// mock parent has already onboarding
asserter.execute(() -> when(onboardingApi.verifyOnboardingInfoUsingHEAD(institutionPspRequest.getTaxCode(), product.getId(), null))
.thenReturn(Uni.createFrom().failure(new ClientWebApplicationException(404))));
asserter.execute(() -> when(onboardingApi.verifyOnboardingInfoUsingHEAD(institutionPspRequest.getTaxCode(), product.getParentId(), null))
.thenReturn(Uni.createFrom().failure(new ResourceConflictException("", ""))));

asserter.assertThat(() -> onboardingService.onboarding(onboardingRequest, users), Assertions::assertNotNull);

Expand Down

0 comments on commit 96932f3

Please sign in to comment.