Skip to content

Commit

Permalink
modify OnboardingController tests to cover mapper coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
giulia-tremolada committed Feb 4, 2025
1 parent c4905bb commit 55d2f8e
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public interface OnboardingMapper {
@Named("toUsersList")
default List<UserOnboardingResponseV1> toUsersList(List<UserOnboardingResponse> list) {
if(Objects.isNull(list) || list.isEmpty()) {
return null;
return Collections.emptyList();
}
return list.stream()
.map(this::toUserOnboardingResponseV1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,10 @@
import io.restassured.http.ContentType;
import io.restassured.response.Response;
import io.smallrye.mutiny.Uni;
import it.pagopa.selfcare.onboarding.common.InstitutionType;
import it.pagopa.selfcare.onboarding.common.OnboardingStatus;
import it.pagopa.selfcare.onboarding.common.Origin;
import it.pagopa.selfcare.onboarding.common.WorkflowType;
import it.pagopa.selfcare.onboarding.common.*;
import it.pagopa.selfcare.onboarding.constants.CustomError;
import it.pagopa.selfcare.onboarding.controller.request.*;
import it.pagopa.selfcare.onboarding.controller.response.InstitutionResponse;
import it.pagopa.selfcare.onboarding.controller.response.OnboardingGet;
import it.pagopa.selfcare.onboarding.controller.response.OnboardingGetResponse;
import it.pagopa.selfcare.onboarding.controller.response.OnboardingResponse;
import it.pagopa.selfcare.onboarding.controller.response.*;
import it.pagopa.selfcare.onboarding.entity.Billing;
import it.pagopa.selfcare.onboarding.entity.CheckManagerResponse;
import it.pagopa.selfcare.onboarding.entity.Onboarding;
Expand All @@ -36,10 +30,7 @@
import java.io.File;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;

import static io.restassured.RestAssured.given;
import static org.junit.jupiter.api.Assertions.*;
Expand All @@ -60,6 +51,8 @@ class OnboardingControllerTest {
static final InstitutionPspRequest institutionPsp;

static final OnboardingUserPgRequest onboardingUserPgValid;
static final OnboardingResponse onboardingResponse;
static final UserOnboardingResponse userResponse;

@InjectMock
OnboardingService onboardingService;
Expand Down Expand Up @@ -109,6 +102,11 @@ class OnboardingControllerTest {
onboardingUserPgValid.setUsers(List.of(userDTO));
onboardingUserPgValid.setOrigin(Origin.ADE);

/* response */
userResponse = new UserOnboardingResponse();
onboardingResponse = new OnboardingResponse();
onboardingResponse.setUsers(List.of(userResponse));

}

@Test
Expand Down Expand Up @@ -582,20 +580,28 @@ void onboardingCompletion() {

OnboardingDefaultRequest onboardingDefaultRequest = dummyOnboardingDefaultRequest();

onboardingResponse.setUsers(null);

Mockito.when(onboardingService.onboardingCompletion(any(), any()))
.thenReturn(Uni.createFrom().item(new OnboardingResponse()));
.thenReturn(Uni.createFrom().item(onboardingResponse));

given()
Response response = given()
.when()
.body(onboardingDefaultRequest)
.contentType(ContentType.JSON)
.post("/completion")
.then()
.statusCode(200);
.statusCode(200)
.extract()
.response();

OnboardingResponseV1 onboardingResponse = response.as(OnboardingResponseV1.class);


ArgumentCaptor<Onboarding> captor = ArgumentCaptor.forClass(Onboarding.class);
Mockito.verify(onboardingService, times(1)).onboardingCompletion(captor.capture(), any());
assertEquals(InstitutionType.PRV, captor.getValue().getInstitution().getInstitutionType());
assertEquals(Collections.EMPTY_LIST, onboardingResponse.getUsers());
}

static OnboardingDefaultRequest dummyOnboardingDefaultRequest() {
Expand All @@ -617,20 +623,28 @@ void onboardingPaCompletion() {

OnboardingPaRequest onboardingPaRequest = dummyOnboardingPa();

userResponse.setRole(PartyRole.MANAGER);
onboardingResponse.setUsers(List.of(userResponse));

Mockito.when(onboardingService.onboardingCompletion(any(), any()))
.thenReturn(Uni.createFrom().item(new OnboardingResponse()));
.thenReturn(Uni.createFrom().item(onboardingResponse));

given()
Response response = given()
.when()
.body(onboardingPaRequest)
.contentType(ContentType.JSON)
.post("/pa/completion")
.then()
.statusCode(200);
.statusCode(200)
.extract()
.response();

OnboardingResponseV1 onboardingResponse = response.as(OnboardingResponseV1.class);

ArgumentCaptor<Onboarding> captor = ArgumentCaptor.forClass(Onboarding.class);
Mockito.verify(onboardingService, times(1)).onboardingCompletion(captor.capture(), any());
assertEquals(InstitutionType.PA, captor.getValue().getInstitution().getInstitutionType());
assertEquals(PartyRole.MANAGER.name(), onboardingResponse.getUsers().get(0).getRole().name());
}

@Test
Expand All @@ -639,26 +653,34 @@ void onboardingPspCompletion() {

OnboardingPspRequest onboardingPspRequest = getOnboardingPspRequest();

userResponse.setRole(PartyRole.ADMIN_EA_IO);

Mockito.when(onboardingService.onboardingCompletion(any(), any()))
.thenReturn(Uni.createFrom().item(new OnboardingResponse()));
.thenReturn(Uni.createFrom().item(onboardingResponse));

given()
Response response = given()
.when()
.body(onboardingPspRequest)
.contentType(ContentType.JSON)
.post("/psp/completion")
.then()
.statusCode(200);
.statusCode(200)
.extract()
.response();

OnboardingResponseV1 onboardingResponse = response.as(OnboardingResponseV1.class);

ArgumentCaptor<Onboarding> captor = ArgumentCaptor.forClass(Onboarding.class);
Mockito.verify(onboardingService, times(1)).onboardingCompletion(captor.capture(), any());
assertEquals(InstitutionType.PSP, captor.getValue().getInstitution().getInstitutionType());
assertNull(onboardingResponse.getUsers().get(0).getRole());
}

static OnboardingPspRequest getOnboardingPspRequest() {
OnboardingPspRequest onboardingPspRequest = new OnboardingPspRequest();
InstitutionPspRequest institution = new InstitutionPspRequest();
onboardingPspRequest.setProductId("productId");
userDTO.setRole(PartyRole.MANAGER);
onboardingPspRequest.setUsers(List.of(userDTO));
institution.setTaxCode("taxCode");
institution.setDigitalAddress("digital@address.it");
Expand All @@ -681,20 +703,27 @@ void onboardingCompletePg() {
onboardingPgRequest.setDigitalAddress("digital@address.it");
onboardingPgRequest.setOrigin(Origin.INFOCAMERE);

userResponse.setRole(PartyRole.SUB_DELEGATE);

Mockito.when(onboardingService.onboardingPgCompletion(any(), any()))
.thenReturn(Uni.createFrom().item(new OnboardingResponse()));
.thenReturn(Uni.createFrom().item(onboardingResponse));

given()
Response response = given()
.when()
.body(onboardingPgRequest)
.contentType(ContentType.JSON)
.post("/pg/completion")
.then()
.statusCode(200);
.statusCode(200)
.extract()
.response();

OnboardingResponseV1 onboardingResponse = response.as(OnboardingResponseV1.class);

ArgumentCaptor<Onboarding> captor = ArgumentCaptor.forClass(Onboarding.class);
Mockito.verify(onboardingService, times(1)).onboardingPgCompletion(captor.capture(), any());
assertEquals(InstitutionType.PG, captor.getValue().getInstitution().getInstitutionType());
assertEquals(PartyRole.SUB_DELEGATE.name(), onboardingResponse.getUsers().get(0).getRole().name());
}

@Test
Expand Down Expand Up @@ -829,6 +858,13 @@ void onboardingImportPSP_bad_request() {
void getInstitutionOnboardings() {
// given
OnboardingResponse onboardingResponse = dummyOnboardingResponse();
UserOnboardingResponse userOnboardingResponse = new UserOnboardingResponse();
userOnboardingResponse.setRole(PartyRole.ADMIN_EA);
UserOnboardingResponse userOnboardingResponse2 = new UserOnboardingResponse();
userOnboardingResponse2.setRole(PartyRole.DELEGATE);
UserOnboardingResponse userOnboardingResponse3 = new UserOnboardingResponse();
userOnboardingResponse3.setRole(PartyRole.OPERATOR);
onboardingResponse.setUsers(List.of(userOnboardingResponse, userOnboardingResponse2, userOnboardingResponse3));
List<OnboardingResponse> onboardingResponses = new ArrayList<>();
onboardingResponses.add(onboardingResponse);
when(onboardingService.institutionOnboardings("taxCode", "subunitCode", "origin", "originId", OnboardingStatus.PENDING))
Expand All @@ -837,17 +873,26 @@ void getInstitutionOnboardings() {
Map<String, String> queryParameterMap = getStringStringMapOnboardings();

// when
given()
Response response = given()
.when()
.queryParams(queryParameterMap)
.get("/institutionOnboardings")
.then()
.statusCode(200);
.statusCode(200)
.extract()
.response();

List<OnboardingResponseV1> onboardingResponseList = response.jsonPath().getList("", OnboardingResponseV1.class);

// then
ArgumentCaptor<Onboarding> captor = ArgumentCaptor.forClass(Onboarding.class);

verify(onboardingService, times(1))
.institutionOnboardings("taxCode", "subunitCode", "origin", "originId", OnboardingStatus.PENDING);
assertNotNull(onboardingResponses);
assertNotNull(onboardingResponseList);
assertEquals(PartyRole.ADMIN_EA.name(), onboardingResponseList.get(0).getUsers().get(0).getRole().name());
assertEquals(PartyRole.DELEGATE.name(), onboardingResponseList.get(0).getUsers().get(1).getRole().name());
assertEquals(PartyRole.OPERATOR.name(), onboardingResponseList.get(0).getUsers().get(2).getRole().name());
}

@Test
Expand Down Expand Up @@ -1046,6 +1091,7 @@ static OnboardingPaRequest dummyOnboardingPa() {

institution.setInstitutionType(InstitutionType.PA);

userDTO.setRole(PartyRole.ADMIN_EA_IO);
onboardingPaValid.setUsers(List.of(userDTO));
onboardingPaValid.setInstitution(institution);
onboardingPaValid.setBilling(billingPaRequest);
Expand Down

0 comments on commit 55d2f8e

Please sign in to comment.