diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/config/ExelaAddressConfig.java b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/config/ExelaAddressConfig.java index 12eba8129e8..41dc0733f01 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/config/ExelaAddressConfig.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/config/ExelaAddressConfig.java @@ -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; } diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/GenericLetterPlaceholderService.java b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/GenericLetterPlaceholderService.java index 651e23f7c52..0e9e1924f7c 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/GenericLetterPlaceholderService.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/GenericLetterPlaceholderService.java @@ -90,7 +90,7 @@ public Map 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; } diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderService.java b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderService.java index 7eaf56543f5..3bd311bbe73 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderService.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderService.java @@ -89,10 +89,10 @@ public void build(SscsCaseData caseData, Map 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())); @@ -101,20 +101,24 @@ public void build(SscsCaseData caseData, Map 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 placeholders) { - placeholders.put(EXELA_ADDRESS_LINE1_LITERAL, exelaAddressConfig.getAddressLine1()); + public void buildExcelaAddress(boolean isIbc, String isScottish, Map 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()); } @@ -136,6 +140,6 @@ private void populateRpcPlaceHolders(SscsCaseData caseData, Map public boolean hasRegionalProcessingCenter(SscsCaseData ccdResponse) { return nonNull(ccdResponse.getRegionalProcessingCenter()) - && nonNull(ccdResponse.getRegionalProcessingCenter().getName()); + && nonNull(ccdResponse.getRegionalProcessingCenter().getName()); } } diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/config/properties/EvidenceProperties.java b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/config/properties/EvidenceProperties.java index 8fd770363d5..d1559ebc865 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/config/properties/EvidenceProperties.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/config/properties/EvidenceProperties.java @@ -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(); + } } } } diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/personalisation/Personalisation.java b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/personalisation/Personalisation.java index 657d957b4ee..4090e9bb17c 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/personalisation/Personalisation.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/personalisation/Personalisation.java @@ -573,7 +573,7 @@ Map setEvidenceProcessingAddress(Map 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()); diff --git a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/service/docmosis/PdfLetterService.java b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/service/docmosis/PdfLetterService.java index 64ba91362a6..222b5e5a92b 100644 --- a/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/service/docmosis/PdfLetterService.java +++ b/src/main/java/uk/gov/hmcts/reform/sscs/tyanotifications/service/docmosis/PdfLetterService.java @@ -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()), diff --git a/src/main/resources/config/application.yaml b/src/main/resources/config/application.yaml index 882702ee1b0..5f0a55dff2b 100644 --- a/src/main/resources/config/application.yaml +++ b/src/main/resources/config/application.yaml @@ -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 @@ -1931,6 +1934,9 @@ exela: addressPostcode: CM20 9QF scottishAddressLine2: PO BOX 13150 scottishPostcode: CM20 9TT + ibcAddressLine1: HMCTS Infected Blood Compensation Appeals + ibcAddressLine2: PO Box 13618 + ibcAddressPostcode: CM20 9WX http: connect: diff --git a/src/test/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderServiceTest.java b/src/test/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderServiceTest.java index 4869dc8952e..ddc419be279 100644 --- a/src/test/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/sscs/evidenceshare/service/placeholders/PlaceholderServiceTest.java @@ -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") @@ -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") @@ -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") @@ -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") @@ -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") @@ -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"); Address address = Address.builder() .line1("Unit 2") .county("Bedford") @@ -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"); @@ -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()); @@ -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") @@ -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)); @@ -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)); + } + }