Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CCMSPUI-458 Reimplemented case search using EBS API #355

Merged
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@ repositories {

dependencies {

implementation 'uk.gov.laa.ccms.data:data-api:0.0.29'
implementation 'uk.gov.laa.ccms.data:data-api:0.0.30-bc6420d-SNAPSHOT'

implementation 'uk.gov.laa.ccms.soa.gateway:soa-gateway-api:0.0.46'
implementation 'uk.gov.laa.ccms.soa.gateway:soa-gateway-api:0.0.48'

implementation 'uk.gov.laa.ccms.caab:caab-api:0.0.40'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,19 @@
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import uk.gov.laa.ccms.caab.AbstractIntegrationTest;
import uk.gov.laa.ccms.caab.bean.CaseSearchCriteria;
import uk.gov.laa.ccms.caab.bean.NotificationSearchCriteria;
import uk.gov.laa.ccms.data.model.AmendmentTypeLookupDetail;
import uk.gov.laa.ccms.data.model.AmendmentTypeLookupValueDetail;
import uk.gov.laa.ccms.data.model.BaseClient;
import uk.gov.laa.ccms.data.model.BaseOffice;
import uk.gov.laa.ccms.data.model.BaseProvider;
import uk.gov.laa.ccms.data.model.BaseUser;
import uk.gov.laa.ccms.data.model.CaseDetails;
import uk.gov.laa.ccms.data.model.CaseReferenceSummary;
import uk.gov.laa.ccms.data.model.CaseStatusLookupDetail;
import uk.gov.laa.ccms.data.model.CaseStatusLookupValueDetail;
import uk.gov.laa.ccms.data.model.CaseSummary;
import uk.gov.laa.ccms.data.model.CommonLookupDetail;
import uk.gov.laa.ccms.data.model.CommonLookupValueDetail;
import uk.gov.laa.ccms.data.model.ContactDetail;
Expand Down Expand Up @@ -112,7 +116,8 @@ public void testGetCommonValues_returnData() throws Exception {
.withQueryParam("sort", equalTo(sort))
.willReturn(okJson(commonValuesJson)));

final Mono<CommonLookupDetail> commonValuesMono = ebsApiClient.getCommonValues(type, code, descr, sort);
final Mono<CommonLookupDetail> commonValuesMono = ebsApiClient.getCommonValues(type, code,
descr, sort);

final CommonLookupDetail commonValues = commonValuesMono.block();

Expand All @@ -121,15 +126,17 @@ public void testGetCommonValues_returnData() throws Exception {

@Test
public void testGetCaseStatusValues_returnData() throws Exception {
final String caseStatusValuesJson = objectMapper.writeValueAsString(buildCaseStatusLookupDetail());
final String caseStatusValuesJson = objectMapper.writeValueAsString(
buildCaseStatusLookupDetail());

final Boolean copyAllowed = true;

wiremock.stubFor(get(urlPathMatching("/lookup/case-status.*"))
.withQueryParam("copy-allowed", equalTo(copyAllowed.toString()))
.willReturn(okJson(caseStatusValuesJson)));

final Mono<CaseStatusLookupDetail> lookupDetailMono = ebsApiClient.getCaseStatusValues(copyAllowed);
final Mono<CaseStatusLookupDetail> lookupDetailMono = ebsApiClient.getCaseStatusValues(
copyAllowed);

final CaseStatusLookupDetail response = lookupDetailMono.block();

Expand Down Expand Up @@ -191,7 +198,8 @@ void testGetUsers_returnsData() throws JsonProcessingException {
@Test
public void testGetUsers_notFound() {
final Integer providerId = 123;
final String expectedMessage = "Failed to retrieve Users with parameters: size=1000, provider-id=123";
final String expectedMessage = "Failed to retrieve Users with parameters: size=1000, "
+ "provider-id=123";
wiremock.stubFor(get(String.format("/users?size=1000&provider-id=%s", providerId))
.willReturn(notFound()));
final Mono<UserDetails> userDetailsMono = ebsApiClient.getUsers(providerId);
Expand All @@ -213,8 +221,9 @@ public void testGetUserNotificationSummary_returnData() throws Exception {
wiremock.stubFor(get(String.format("/users/%s/notifications/summary", loginId))
.willReturn(okJson(notificationSummaryJson)));

final Mono<NotificationSummary> userNotificationSummary = ebsApiClient.getUserNotificationSummary(
loginId);
final Mono<NotificationSummary> userNotificationSummary =
ebsApiClient.getUserNotificationSummary(
loginId);

final NotificationSummary userDetails = userNotificationSummary.block();

Expand Down Expand Up @@ -305,6 +314,44 @@ public void testPostAllocateCaseReference_handlesError() throws JsonProcessingEx
).verify();
}

@Test
public void testGetCases_returnData() throws Exception {
int page = 0;
int size = 20;
int providerId = 2000;

CaseSearchCriteria searchCriteria = buildCaseSearchCriteria();
CaseDetails caseDetails = buildCaseDetails();
String caseDetailsJson = objectMapper.writeValueAsString(caseDetails);

wiremock.stubFor(get(String.format("/cases?provider-id=%s&" +
"case-reference-number=%s&" +
"provider-case-reference=%s&" +
"case-status=%s&" +
"fee-earner-id=%s&" +
"office-id=%s&" +
"client-surname=%s&" +
"page=%s&" +
"size=%s",
providerId,
searchCriteria.getCaseReference(),
searchCriteria.getProviderCaseReference(),
searchCriteria.getStatus(),
searchCriteria.getFeeEarnerId(),
searchCriteria.getOfficeId(),
searchCriteria.getClientSurname(),
page,
size))
.willReturn(okJson(caseDetailsJson)));

CaseDetails response =
ebsApiClient.getCases(searchCriteria, providerId, page, size).block();

assertNotNull(response);
assertEquals(1, response.getContent().size());
assertEquals(caseDetailsJson, objectMapper.writeValueAsString(response));
}

// You may need to build the AmendmentTypeLookupDetail for the test
private AmendmentTypeLookupDetail buildAmendmentTypeLookupDetail() {
final AmendmentTypeLookupDetail detail = new AmendmentTypeLookupDetail();
Expand Down Expand Up @@ -391,4 +438,27 @@ private Notifications buildNotifications() {
);
}

private CaseDetails buildCaseDetails() {
return new CaseDetails()
.addContentItem(new CaseSummary()
.caseReferenceNumber("caseref1")
.providerCaseReferenceNumber("provcaseref")
.caseStatusDisplay("app")
.client(new BaseClient().firstName("firstname")
.surname("thesurname"))
.feeEarnerName("feeEarner")
.categoryOfLaw("CAT1"));
}

private CaseSearchCriteria buildCaseSearchCriteria() {
CaseSearchCriteria searchCriteria = new CaseSearchCriteria();
searchCriteria.setCaseReference("123");
searchCriteria.setProviderCaseReference("456");
searchCriteria.setStatus("caseStat");
searchCriteria.setFeeEarnerId(678);
searchCriteria.setOfficeId(345);
searchCriteria.setClientSurname("clientSurname");
return searchCriteria;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,6 @@
import org.springframework.test.context.DynamicPropertySource;
import reactor.core.publisher.Mono;
import uk.gov.laa.ccms.caab.AbstractIntegrationTest;
import uk.gov.laa.ccms.caab.bean.CaseSearchCriteria;
import uk.gov.laa.ccms.soa.gateway.model.BaseClient;
import uk.gov.laa.ccms.soa.gateway.model.CaseDetails;
import uk.gov.laa.ccms.soa.gateway.model.CaseSummary;
import uk.gov.laa.ccms.soa.gateway.model.ClientDetail;
import uk.gov.laa.ccms.soa.gateway.model.ClientTransactionResponse;
import uk.gov.laa.ccms.soa.gateway.model.ContractDetail;
Expand Down Expand Up @@ -78,44 +74,6 @@ public void testGetContractDetails_returnData() throws Exception {
assertEquals(contractDetailsJson, objectMapper.writeValueAsString(response.block()));
}

@Test
public void testGetCases_returnData() throws Exception {
String loginId = USER_1;
String userType = USER_TYPE;
int page = 0;
int size = 20;
CaseSearchCriteria searchCriteria = buildCopyCaseSearchCriteria();
CaseDetails caseDetails = buildCaseDetails();
String caseDetailsJson = objectMapper.writeValueAsString(caseDetails);

wiremock.stubFor(get(String.format("/cases?case-reference-number=%s&" +
"provider-case-reference=%s&" +
"case-status=%s&" +
"fee-earner-id=%s&" +
"office-id=%s&" +
"client-surname=%s&" +
"page=%s&" +
"size=%s",
searchCriteria.getCaseReference(),
searchCriteria.getProviderCaseReference(),
searchCriteria.getStatus(),
searchCriteria.getFeeEarnerId(),
searchCriteria.getOfficeId(),
searchCriteria.getClientSurname(),
page,
size))
.withHeader(SOA_GATEWAY_USER_LOGIN_ID, equalTo(loginId))
.withHeader(SOA_GATEWAY_USER_ROLE, equalTo(userType))
.willReturn(okJson(caseDetailsJson)));

CaseDetails response =
soaApiClient.getCases(searchCriteria, loginId, userType, page, size).block();

assertNotNull(response);
assertEquals(1, response.getContent().size());
assertEquals(caseDetailsJson, objectMapper.writeValueAsString(response));
}

@Test
public void testGetClient_returnData() throws Exception {
String clientReferenceNumber = "clientRef1";
Expand Down Expand Up @@ -318,26 +276,5 @@ private ContractDetails buildContractDetails() {
.authorisationType("AUTHTYPE1"));
}

private CaseDetails buildCaseDetails() {
return new CaseDetails()
.addContentItem(new CaseSummary()
.caseReferenceNumber("caseref1")
.providerCaseReferenceNumber("provcaseref")
.caseStatusDisplay("app")
.client(new BaseClient().firstName("firstname").surname("thesurname"))
.feeEarnerName("feeEarner")
.categoryOfLaw("CAT1"));
}

private CaseSearchCriteria buildCopyCaseSearchCriteria() {
CaseSearchCriteria searchCriteria = new CaseSearchCriteria();
searchCriteria.setCaseReference("123");
searchCriteria.setProviderCaseReference("456");
searchCriteria.setStatus("caseStat");
searchCriteria.setFeeEarnerId(678);
searchCriteria.setOfficeId(345);
searchCriteria.setClientSurname("clientSurname");
return searchCriteria;
}

}
Loading