Skip to content
Draft
Show file tree
Hide file tree
Changes from all 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
6 changes: 3 additions & 3 deletions src/main/java/uk/gov/hmcts/reform/pcs/ccd/PCSCaseView.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,10 @@ public PCSCase getCase(CaseViewRequest<State> request) {

boolean hasUnsubmittedCaseData = caseHasUnsubmittedData(caseReference, state);

caseFieldsView.setCaseFields(pcsCase);

setMarkdownFields(pcsCase, hasUnsubmittedCaseData);

caseFieldsView.setCaseFields(pcsCase);

//allows indexing for Global Search
pcsCase.setSearchCriteria(new SearchCriteria());

Expand All @@ -109,7 +109,7 @@ private PCSCase getSubmittedCase(long caseReference) {
PCSCase pcsCase = PCSCase.builder()
.propertyAddress(convertAddress(pcsCaseEntity.getPropertyAddress()))
.legislativeCountry(pcsCaseEntity.getLegislativeCountry())
.caseManagementLocation(pcsCaseEntity.getCaseManagementLocation())
.caseManagementLocationNumber(pcsCaseEntity.getCaseManagementLocation())
.allClaimants(partyMap.get(PartyRole.CLAIMANT))
.allDefendants(partyMap.get(PartyRole.DEFENDANT))
.allUnderlesseeOrMortgagees(partyMap.get(PartyRole.UNDERLESSEE_OR_MORTGAGEE))
Expand Down
11 changes: 9 additions & 2 deletions src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/PCSCase.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import uk.gov.hmcts.ccd.sdk.External;
import uk.gov.hmcts.ccd.sdk.api.CCD;
import uk.gov.hmcts.ccd.sdk.type.AddressUK;
import uk.gov.hmcts.ccd.sdk.type.CaseLocation;
import uk.gov.hmcts.ccd.sdk.type.Document;
import uk.gov.hmcts.ccd.sdk.type.DynamicList;
import uk.gov.hmcts.ccd.sdk.type.FieldType;
Expand Down Expand Up @@ -126,7 +127,7 @@ public class PCSCase {
@CCD(
label = "Case management location"
)
private Integer caseManagementLocation;
private Integer caseManagementLocationNumber;

@CCD(
label = "Region Id"
Expand Down Expand Up @@ -530,6 +531,12 @@ public class PCSCase {
label = "CaseManagementLocation",
access = {GlobalSearchAccess.class}
)
private String caseManagementLocationFormatted;
private CaseLocation caseManagementLocation;

@CCD(
label = "CaseManagementCategory",
access = {GlobalSearchAccess.class}
)
private DynamicList caseManagementCategory;

}
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
package uk.gov.hmcts.reform.pcs.ccd.view.globalsearch;

import uk.gov.hmcts.ccd.sdk.type.CaseLocation;
import uk.gov.hmcts.ccd.sdk.type.DynamicList;
import uk.gov.hmcts.ccd.sdk.type.DynamicListElement;
import uk.gov.hmcts.ccd.sdk.type.ListValue;
import uk.gov.hmcts.reform.pcs.ccd.domain.PCSCase;
import uk.gov.hmcts.reform.pcs.ccd.domain.Party;
import uk.gov.hmcts.reform.pcs.ccd.domain.VerticalYesNo;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class CaseFieldsView {

@Value("${globalsearch.caseManagementCategory}")
private String caseManagementCategory;

/**
* Sets case fields for the pcsCase.
Expand All @@ -20,6 +28,7 @@ public class CaseFieldsView {
public void setCaseFields(final PCSCase pcsCase) {
setCaseNameHmctsField(pcsCase);
setCaseManagementLocationField(pcsCase);
setCaseManagementCategory(pcsCase);
}

/**
Expand All @@ -41,20 +50,34 @@ private void setCaseNameHmctsField(final PCSCase pcsCase) {
pcsCase.setCaseNamePublic(formattedCaseName);
}

/**
* Builds a formatted string for the case management location field based on epimsId and regionId.
*
* @param pcsCase The current case data
*/

private void setCaseManagementLocationField(final PCSCase pcsCase) {
Integer epimsId = pcsCase.getCaseManagementLocation();
Integer epimsId = pcsCase.getCaseManagementLocationNumber();
Integer region = pcsCase.getRegionId();

if (epimsId != null && region != null) {
pcsCase.setCaseManagementLocationFormatted(getFormattedValue(region, epimsId));
pcsCase.setCaseManagementLocation(CaseLocation.builder()
.baseLocation(String.valueOf(epimsId))
.region(String.valueOf(region))
.build());
}
}

private void setCaseManagementCategory(PCSCase pcsCase) {
final UUID uuid = UUID.randomUUID();
final DynamicListElement listElement = DynamicListElement.builder()
.code(uuid)
.label(caseManagementCategory)
.build();
final List<DynamicListElement> caseManagementCategoryList = new ArrayList<>();
caseManagementCategoryList.add(listElement);

pcsCase.setCaseManagementCategory(DynamicList.builder()
.value(listElement)
.listItems(caseManagementCategoryList)
.build());
}

private String getFormattedClaimantName(final List<ListValue<Party>> claimants) {
String formattedClaimantName = null;
if (claimants != null && !claimants.isEmpty()) {
Expand Down Expand Up @@ -82,8 +105,4 @@ private String getFormattedDefendantName(final List<ListValue<Party>> defendants
private boolean isDefendantNameKnown(final List<ListValue<Party>> defendants) {
return defendants.getFirst().getValue().getNameKnown() == VerticalYesNo.YES;
}

private String getFormattedValue(int region, int epimsId) {
return "{region:%s,baseLocation:%s}".formatted(region, epimsId);
}
}
5 changes: 4 additions & 1 deletion src/main/resources/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ management:
elasticsearch:
enabled: false

globalsearch:
caseManagementCategory: Property Possession Claims

hmcts:
hmctsOrgId: AAA3

Expand Down Expand Up @@ -196,4 +199,4 @@ payments:

core_case_data:
api:
url: ${CCD_DATA_STORE_URL:localhost:4452}
url: ${CCD_DATA_STORE_URL:localhost:4452}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package uk.gov.hmcts.reform.pcs.ccd.view.globalsearch;

import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static uk.gov.hmcts.reform.pcs.ccd.domain.VerticalYesNo.NO;
import static uk.gov.hmcts.reform.pcs.ccd.domain.VerticalYesNo.YES;

import uk.gov.hmcts.ccd.sdk.type.CaseLocation;
import uk.gov.hmcts.ccd.sdk.type.DynamicList;
import uk.gov.hmcts.ccd.sdk.type.ListValue;
import uk.gov.hmcts.reform.pcs.ccd.domain.PCSCase;
import uk.gov.hmcts.reform.pcs.ccd.domain.Party;
Expand All @@ -20,6 +22,7 @@
import org.junit.jupiter.params.provider.CsvSource;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils;

@ExtendWith(MockitoExtension.class)
class CaseFieldsViewTest {
Expand Down Expand Up @@ -47,6 +50,7 @@ class CaseFieldsViewTest {
@BeforeEach
void setUp() {
underTest = new CaseFieldsView();
ReflectionTestUtils.setField(underTest, "caseManagementCategory", "Property Possession Claims");
}


Expand Down Expand Up @@ -130,17 +134,20 @@ void shouldSetCaseNameWhenClaimantIsCitizenAndDefendantUnkown() {
}

@Test
void shouldSetCaseManagementLocationFormatted() {
void shouldSetCaseManagementLocation() {

//Given
when(pcsCase.getCaseManagementLocation()).thenReturn(29096);
when(pcsCase.getCaseManagementLocationNumber()).thenReturn(29096);
when(pcsCase.getRegionId()).thenReturn(1);

//When
underTest.setCaseFields(pcsCase);

// Then
verify(pcsCase).setCaseManagementLocationFormatted("{region:1,baseLocation:29096}");
verify(pcsCase).setCaseManagementLocation(CaseLocation.builder()
.baseLocation("29096")
.region("1")
.build());
}

@ParameterizedTest
Expand All @@ -149,16 +156,26 @@ void shouldSetCaseManagementLocationFormatted() {
"null,1",
"null,null"
}, nullValues = {"null"})
void shouldNotCallSetCaseManagementLocationFormattedWhenEitherIdIsNull(Integer epimsId, Integer regionId) {
void shouldNotCallSetCaseManagementLocationWhenEitherIdIsNull(Integer epimsId, Integer regionId) {

//Given
when(pcsCase.getCaseManagementLocation()).thenReturn(epimsId);
when(pcsCase.getCaseManagementLocationNumber()).thenReturn(epimsId);
when(pcsCase.getRegionId()).thenReturn(regionId);

//When
underTest.setCaseFields(pcsCase);

// Then
verify(pcsCase, never()).setCaseManagementLocationFormatted(anyString());
verify(pcsCase, never()).setCaseManagementLocation(any(CaseLocation.class));
}

@Test
void shouldSetCaseManagementCategory() {

//When
underTest.setCaseFields(pcsCase);

// Then
verify(pcsCase).setCaseManagementCategory(any(DynamicList.class));
}
}
Loading