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

SSCSCI-1493 #4288

Closed
wants to merge 4 commits into from
Closed
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
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,7 @@ public class ExelaAddressConfig {
private String addressPostcode;
private String scottishAddressLine2;
private String scottishPostcode;
private String ibcAddressLine1;
private String ibcAddressLine2;
private String ibcAddressPostcode;
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public Map<String, Object> populatePlaceholders(SscsCaseData caseData, FurtherEv
placeholders.put(HMCTS2, HMCTS_IMG);
placeholders.put(CASE_ID_LITERAL, caseData.getCcdCaseId());

placeholderService.buildExcelaAddress(caseData.getIsScottishCase(), placeholders);
placeholderService.buildExcelaAddress(caseData.isIbcCase(), caseData.getIsScottishCase(), placeholders);

return placeholders;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,10 @@ public void build(SscsCaseData caseData, Map<String, Object> placeholders, Addre
if (caseData.isLanguagePreferenceWelsh()) {
if (caseCreatedDate != null) {
placeholders.put(WELSH_CASE_CREATED_DATE_LITERAL,
LocalDateToWelshStringConverter.convert(caseCreatedDate));
LocalDateToWelshStringConverter.convert(caseCreatedDate));
}
placeholders.put(WELSH_GENERATED_DATE_LITERAL,
LocalDateToWelshStringConverter.convert(LocalDateTime.now().toLocalDate()));
LocalDateToWelshStringConverter.convert(LocalDateTime.now().toLocalDate()));
placeholders.put(pdfDocumentConfig.getHmctsWelshImgKey(), pdfDocumentConfig.getHmctsWelshImgVal());
}
placeholders.put(SC_NUMBER_LITERAL, defaultToEmptyStringIfNull(caseData.getCaseReference()));
Expand All @@ -101,20 +101,24 @@ public void build(SscsCaseData caseData, Map<String, Object> placeholders, Addre
placeholders.put(CASE_CREATED_DATE_LITERAL, caseCreatedDate);
}

buildExcelaAddress(caseData.getIsScottishCase(), placeholders);
buildExcelaAddress(caseData.isIbcCase(), caseData.getIsScottishCase(), placeholders);
populateRpcPlaceHolders(caseData, placeholders);

placeholders.putAll(getAddressPlaceholders(address, true, PLACEHOLDER_SERVICE));
}

public void buildExcelaAddress(String isScottish, Map<String, Object> placeholders) {
placeholders.put(EXELA_ADDRESS_LINE1_LITERAL, exelaAddressConfig.getAddressLine1());
public void buildExcelaAddress(boolean isIbc, String isScottish, Map<String, Object> placeholders) {
placeholders.put(EXELA_ADDRESS_LINE3_LITERAL, exelaAddressConfig.getAddressLine3());

if ("Yes".equalsIgnoreCase(isScottish) && scottishPoBoxEnabled) {
placeholders.put(EXELA_ADDRESS_LINE1_LITERAL, exelaAddressConfig.getAddressLine1());
placeholders.put(EXELA_ADDRESS_LINE2_LITERAL, exelaAddressConfig.getScottishAddressLine2());
placeholders.put(EXELA_ADDRESS_POSTCODE_LITERAL, exelaAddressConfig.getScottishPostcode());
} else if (isIbc) {
placeholders.put(EXELA_ADDRESS_LINE1_LITERAL, exelaAddressConfig.getIbcAddressLine1());
placeholders.put(EXELA_ADDRESS_LINE2_LITERAL, exelaAddressConfig.getIbcAddressLine2());
placeholders.put(EXELA_ADDRESS_POSTCODE_LITERAL, exelaAddressConfig.getIbcAddressPostcode());
} else {
placeholders.put(EXELA_ADDRESS_LINE1_LITERAL, exelaAddressConfig.getAddressLine1());
placeholders.put(EXELA_ADDRESS_LINE2_LITERAL, exelaAddressConfig.getAddressLine2());
placeholders.put(EXELA_ADDRESS_POSTCODE_LITERAL, exelaAddressConfig.getAddressPostcode());
}
Expand All @@ -136,6 +140,6 @@ private void populateRpcPlaceHolders(SscsCaseData caseData, Map<String, Object>

public boolean hasRegionalProcessingCenter(SscsCaseData ccdResponse) {
return nonNull(ccdResponse.getRegionalProcessingCenter())
&& nonNull(ccdResponse.getRegionalProcessingCenter().getName());
&& nonNull(ccdResponse.getRegionalProcessingCenter().getName());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,29 @@ public static class EvidenceAddress {
private String telephone;
private String telephoneWelsh;
private boolean scottishPoBoxFeatureEnabled;
private String ibcAddressLine1;
private String ibcAddressLine2;
private String ibcAddressLine3;
private String ibcAddressPostcode;

public String getLine2(SscsCaseData ccdResponse) {
return ccdResponse.isIbcCase() ? getIbcAddressLine2() : getLine2();
}

public String getLine3(SscsCaseData ccdResponse) {
return "Yes".equalsIgnoreCase(ccdResponse.getIsScottishCase()) && scottishPoBoxFeatureEnabled ? getScottishLine3() : getLine3();
if ("Yes".equalsIgnoreCase(ccdResponse.getIsScottishCase()) && scottishPoBoxFeatureEnabled) {
return getScottishLine3();
} else {
return ccdResponse.isIbcCase() ? getIbcAddressLine3() : getLine3();
}
}

public String getPostcode(SscsCaseData ccdResponse) {
return "Yes".equalsIgnoreCase(ccdResponse.getIsScottishCase()) && scottishPoBoxFeatureEnabled ? getScottishPostcode() : getPostcode();
if ("Yes".equalsIgnoreCase(ccdResponse.getIsScottishCase()) && scottishPoBoxFeatureEnabled) {
return getScottishPostcode();
} else {
return ccdResponse.isIbcCase() ? getIbcAddressPostcode() : getPostcode();
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ Map<String, Object> setEvidenceProcessingAddress(Map<String, Object> personalisa

if (EventType.READY_TO_LIST.getCcdType().equals(ccdResponse.getCreatedInGapsFrom())) {
personalisation.put(REGIONAL_OFFICE_NAME_LITERAL, evidenceProperties.getAddress().getLine1());
personalisation.put(SUPPORT_CENTRE_NAME_LITERAL, evidenceProperties.getAddress().getLine2());
personalisation.put(SUPPORT_CENTRE_NAME_LITERAL, evidenceProperties.getAddress().getLine2(ccdResponse));
personalisation.put(ADDRESS_LINE_LITERAL, evidenceProperties.getAddress().getLine3(ccdResponse));
personalisation.put(TOWN_LITERAL, evidenceProperties.getAddress().getTown());
personalisation.put(COUNTY_LITERAL, evidenceProperties.getAddress().getCounty());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ private byte[] generateCoversheet(NotificationWrapper wrapper, SubscriptionWithT
lines.get(lineNum++),
lines.get(lineNum++),
lines.get(lineNum),
evidenceProperties.getAddress().getLine2(),
evidenceProperties.getAddress().getLine2(wrapper.getNewSscsCaseData()),
evidenceProperties.getAddress().getLine3(wrapper.getNewSscsCaseData()),
evidenceProperties.getAddress().getTown(),
evidenceProperties.getAddress().getPostcode(wrapper.getNewSscsCaseData()),
Expand Down
6 changes: 6 additions & 0 deletions src/main/resources/config/application.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,9 @@ tya.evidence.address.scottishPostcode: CM20 9TT
tya.evidence.address.telephone: 0300 123 1142
tya.evidence.address.telephoneWelsh: 0300 303 5170
tya.evidence.address.scottishPoBoxFeatureEnabled: ${SCOTTISH_PO_BOX_ENABLED:false}
tya.evidence.address.ibcAddressLine2: HMCTS Infected Blood Compensation Appeals
tya.evidence.address.ibcAddressLine3: PO Box 13618
tya.evidence.address.ibcAddressPostcode: CM20 9WX

helpline:
telephone: 0300 123 1142
Expand Down Expand Up @@ -1931,6 +1934,9 @@ exela:
addressPostcode: CM20 9QF
scottishAddressLine2: PO BOX 13150
scottishPostcode: CM20 9TT
ibcAddressLine1: HMCTS Infected Blood Compensation Appeals
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we use the same properties since it's the same value?

ibcAddressLine2: PO Box 13618
ibcAddressPostcode: CM20 9WX

http:
connect:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,14 @@ public void setup() {
placeholders = new HashMap<>();

given(pdfDocumentConfig.getHmctsImgKey()).willReturn("hmctsKey");
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
}

@Test
public void givenACase_thenPopulateThePlaceholders() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Address address = Address.builder()
.line1("Unit 2")
.line2("156 The Road")
Expand Down Expand Up @@ -100,6 +100,10 @@ public void givenACase_thenPopulateThePlaceholders() {

@Test
public void givenACase_thenPopulateThePlaceholdersWithBenefitTypeEmpty() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Address address = Address.builder()
.line1("Unit 2")
.line2("156 The Road")
Expand All @@ -115,6 +119,10 @@ public void givenACase_thenPopulateThePlaceholdersWithBenefitTypeEmpty() {

@Test
public void givenACase_thenPopulateThePlaceholdersWithBenefitTypeDescriptionEmpty() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Address address = Address.builder()
.line1("Unit 2")
.line2("156 The Road")
Expand Down Expand Up @@ -153,6 +161,10 @@ public void givenACase_thenPopulateThePlaceholdersWithBenefitTypeDescriptionEmpt

@Test
public void givenARecipientAddressWith4Lines_thenPopulateThePlaceholders() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Address address = Address.builder()
.line1("Unit 2")
.town("Lechworth")
Expand All @@ -169,6 +181,10 @@ public void givenARecipientAddressWith4Lines_thenPopulateThePlaceholders() {

@Test
public void givenAnAppellantWithALongNameAndAddressExceeding45Characters_thenGenerateThePlaceholdersWithTruncatedName() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Address address = Address.builder()
.line1("MyFirstVeryVeryLongAddressLineWithLotsOfCharacters")
.line2("MySecondVeryVeryLongAddressLineWithLotsOfCharacters")
Expand All @@ -188,6 +204,10 @@ public void givenAnAppellantWithALongNameAndAddressExceeding45Characters_thenGen

@Test
public void givenARecipientAddressWith3Lines_thenPopulateThePlaceholders() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you could put these 4 mocks in a method to reduce repetition

Address address = Address.builder()
.line1("Unit 2")
.county("Bedford")
Expand All @@ -202,6 +222,10 @@ public void givenARecipientAddressWith3Lines_thenPopulateThePlaceholders() {

@Test
public void givenALanguagePreferenceIsWelsh_ThenPickWelshLogo() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
caseData.setLanguagePreferenceWelsh("Yes");
given(pdfDocumentConfig.getHmctsWelshImgKey()).willReturn("hmctsWelshImgKey");
given(pdfDocumentConfig.getHmctsWelshImgVal()).willReturn("welshhmcts.png");
Expand All @@ -220,6 +244,10 @@ public void givenALanguagePreferenceIsWelsh_ThenPickWelshLogo() {

@Test
public void givenAChildSupportCase_thenShouldHideNino() {
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine2()).willReturn("Line 2");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
given(exelaAddressConfig.getAddressPostcode()).willReturn("Postcode");
caseData.setLanguagePreferenceWelsh("Yes");
caseData.getAppeal().getBenefitType().setCode(CHILD_SUPPORT.getShortName());
caseData.getAppeal().getBenefitType().setDescription(CHILD_SUPPORT.getDescription());
Expand All @@ -238,6 +266,10 @@ public void givenAChildSupportCase_thenShouldHideNino() {

@Test
public void givenAnIbcaCase_thenPopulateThePlaceholders() {
given(exelaAddressConfig.getIbcAddressLine1()).willReturn("IBC line 1");
given(exelaAddressConfig.getIbcAddressLine2()).willReturn("IBC line 2");
given(exelaAddressConfig.getIbcAddressPostcode()).willReturn("IBC postcode");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
caseData.setBenefitCode(IBCA_BENEFIT_CODE);
caseData.getAppeal().setBenefitType(BenefitType.builder()
.code("infectedBloodCompensation")
Expand Down Expand Up @@ -267,9 +299,10 @@ public void givenAnIbcaCase_thenPopulateThePlaceholders() {
assertEquals("INFECTED BLOOD COMPENSATION", placeholders.get(BENEFIT_TYPE_LITERAL));
assertEquals("123456", placeholders.get(CASE_ID_LITERAL));
assertEquals(IBCA_URL, placeholders.get(SSCS_URL_LITERAL));
assertEquals("Line 1", placeholders.get(EXELA_ADDRESS_LINE1_LITERAL));
assertEquals("Line 2", placeholders.get(EXELA_ADDRESS_LINE2_LITERAL));
assertEquals("IBC line 1", placeholders.get(EXELA_ADDRESS_LINE1_LITERAL));
assertEquals("IBC line 2", placeholders.get(EXELA_ADDRESS_LINE2_LITERAL));
assertEquals("Line 3", placeholders.get(EXELA_ADDRESS_LINE3_LITERAL));
assertEquals("IBC postcode", placeholders.get(EXELA_ADDRESS_POSTCODE_LITERAL));
assertEquals("Unit 2", placeholders.get(RECIPIENT_ADDRESS_LINE_1_LITERAL));
assertEquals("156 The Road", placeholders.get(RECIPIENT_ADDRESS_LINE_2_LITERAL));
assertEquals("Lechworth", placeholders.get(RECIPIENT_ADDRESS_LINE_3_LITERAL));
Expand All @@ -279,4 +312,48 @@ public void givenAnIbcaCase_thenPopulateThePlaceholders() {
assertEquals("IBCA123456", placeholders.get(NINO_LITERAL));
assertEquals("IBCA Reference", placeholders.get(LABEL));
}

@Test
public void givenAScottishCase_thenPopulateThePlaceholders() {
service = new PlaceholderService(pdfDocumentConfig, exelaAddressConfig, true);
given(exelaAddressConfig.getScottishAddressLine2()).willReturn("Scottish line 2");
given(exelaAddressConfig.getScottishPostcode()).willReturn("Scottish postcode");
given(exelaAddressConfig.getAddressLine1()).willReturn("Line 1");
given(exelaAddressConfig.getAddressLine3()).willReturn("Line 3");
caseData.setIsScottishCase("Yes");

Address address = Address.builder()
.line1("Unit 2")
.line2("156 The Road")
.town("Lechworth")
.county("Bedford")
.postcode("L2 5UZ").build();

service.build(caseData, placeholders, address, now);

assertEquals("HM Courts & Tribunals Service", placeholders.get(REGIONAL_OFFICE_ADDRESS_LINE1_LITERAL));
assertEquals("Social Security & Child Support Appeals", placeholders.get(REGIONAL_OFFICE_ADDRESS_LINE2_LITERAL));
assertEquals("Prudential Buildings", placeholders.get(REGIONAL_OFFICE_ADDRESS_LINE3_LITERAL));
assertEquals("36 Dale Street", placeholders.get(REGIONAL_OFFICE_ADDRESS_LINE4_LITERAL));
assertEquals("LIVERPOOL", placeholders.get(REGIONAL_OFFICE_COUNTY_LITERAL));
assertEquals("L2 5UZ", placeholders.get(REGIONAL_OFFICE_POSTCODE_LITERAL));
assertEquals(now, placeholders.get(GENERATED_DATE_LITERAL));
assertEquals(now, placeholders.get(CASE_CREATED_DATE_LITERAL));
assertEquals("Mr T Tibbs", placeholders.get(APPELLANT_FULL_NAME_LITERAL));
assertEquals("PERSONAL INDEPENDENCE PAYMENT", placeholders.get(BENEFIT_TYPE_LITERAL));
assertEquals("123456", placeholders.get(CASE_ID_LITERAL));
assertEquals("JT0123456B", placeholders.get(NINO_LITERAL));
assertEquals("https://www.gov.uk/appeal-benefit-decision", placeholders.get(SSCS_URL_LITERAL));
assertEquals("Line 1", placeholders.get(EXELA_ADDRESS_LINE1_LITERAL));
assertEquals("Scottish line 2", placeholders.get(EXELA_ADDRESS_LINE2_LITERAL));
assertEquals("Scottish postcode", placeholders.get(EXELA_ADDRESS_POSTCODE_LITERAL));
assertEquals("Line 3", placeholders.get(EXELA_ADDRESS_LINE3_LITERAL));
assertEquals("Unit 2", placeholders.get(RECIPIENT_ADDRESS_LINE_1_LITERAL));
assertEquals("156 The Road", placeholders.get(RECIPIENT_ADDRESS_LINE_2_LITERAL));
assertEquals("Lechworth", placeholders.get(RECIPIENT_ADDRESS_LINE_3_LITERAL));
assertEquals("Bedford", placeholders.get(RECIPIENT_ADDRESS_LINE_4_LITERAL));
assertEquals("L2 5UZ", placeholders.get(RECIPIENT_ADDRESS_LINE_5_LITERAL));
assertEquals("SC123/12/1234", placeholders.get(SC_NUMBER_LITERAL));
}

}
Loading