From 3fe812666a6ddf743b7ae2b8e1ebadaeccb78d63 Mon Sep 17 00:00:00 2001 From: Andrew Ajube Date: Tue, 31 Mar 2026 09:45:00 +0100 Subject: [PATCH 1/3] feat: add fields for financial details and expenses, in HouseholdCircumstances --- .../HouseholdCircumstances.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/HouseholdCircumstances.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/HouseholdCircumstances.java index 63b5b90d92..9102f07e20 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/HouseholdCircumstances.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/HouseholdCircumstances.java @@ -6,7 +6,12 @@ import lombok.Data; import lombok.NoArgsConstructor; import uk.gov.hmcts.ccd.sdk.api.CCD; +import uk.gov.hmcts.ccd.sdk.type.FieldType; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; +import uk.gov.hmcts.reform.pcs.ccd.annotation.JacksonMoneyGBP; + +import java.math.BigDecimal; +import java.time.LocalDate; @Builder @Data @@ -17,4 +22,40 @@ public class HouseholdCircumstances { @CCD private YesOrNo dependantChildren; + @CCD + private YesOrNo shareIncomeExpenseDetails; + + @CCD + private String regularIncome; + + @CCD + private YesOrNo universalCredit; + + @CCD + private LocalDate ucApplicationDate; + + @CCD + private YesOrNo priorityDebts; + + @CCD(typeOverride = FieldType.MoneyGBP) + @JacksonMoneyGBP + private BigDecimal debtTotal; + + @CCD(typeOverride = FieldType.MoneyGBP) + @JacksonMoneyGBP + private BigDecimal debtContribution; + + @CCD + private String debtContributionFrequency; + + @CCD + private String regularExpenses; + + @CCD(typeOverride = FieldType.MoneyGBP) + @JacksonMoneyGBP + private BigDecimal expenseAmount; + + @CCD + private String expenseFrequency; + } From b224591156cde4d89e05b25c0f5b6a60381c0b70 Mon Sep 17 00:00:00 2001 From: Andrew Ajube Date: Tue, 31 Mar 2026 11:30:00 +0100 Subject: [PATCH 2/3] feat: enhance HouseholdCircumstancesEntity mapping with additional financial and expense fields --- .../HouseholdCircumstancesService.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesService.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesService.java index 2c4ec07507..795bc284ab 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesService.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesService.java @@ -13,10 +13,19 @@ public HouseholdCircumstancesEntity createHouseholdCircumstancesEntity(Household return null; } - HouseholdCircumstancesEntity householdCircumstancesEntity = HouseholdCircumstancesEntity.builder() + return HouseholdCircumstancesEntity.builder() .dependantChildren(circumstances.getDependantChildren()) + .shareIncomeExpenseDetails(circumstances.getShareIncomeExpenseDetails()) + .regularIncome(circumstances.getRegularIncome()) + .universalCredit(circumstances.getUniversalCredit()) + .ucApplicationDate(circumstances.getUcApplicationDate()) + .priorityDebts(circumstances.getPriorityDebts()) + .debtTotal(circumstances.getDebtTotal()) + .debtContribution(circumstances.getDebtContribution()) + .debtContributionFrequency(circumstances.getDebtContributionFrequency()) + .regularExpenses(circumstances.getRegularExpenses()) + .expenseAmount(circumstances.getExpenseAmount()) + .expenseFrequency(circumstances.getExpenseFrequency()) .build(); - - return householdCircumstancesEntity; } } From 0735c1bb03916baae7a3af45bfc7b7290779dbc4 Mon Sep 17 00:00:00 2001 From: Andrew Ajube Date: Tue, 31 Mar 2026 14:15:00 +0100 Subject: [PATCH 3/3] test: add unit test for mapping Universal Credit and priority debt fields in HouseholdCircumstancesEntity --- .../HouseholdCircumstancesServiceTest.java | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesServiceTest.java b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesServiceTest.java index 3fc4c62e6f..5a9785913e 100644 --- a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/HouseholdCircumstancesServiceTest.java @@ -11,6 +11,8 @@ import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.HouseholdCircumstances; import uk.gov.hmcts.reform.pcs.ccd.entity.respondpossessionclaim.HouseholdCircumstancesEntity; +import java.math.BigDecimal; +import java.time.LocalDate; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -58,5 +60,42 @@ void shouldReturnNullWhenHouseholdCircumstancesIsNull() { assertThat(entity).isNull(); } + @Test + void shouldMapUniversalCreditAndPriorityDebtFields() { + // Given + HouseholdCircumstances householdCircumstances = HouseholdCircumstances.builder() + .dependantChildren(YesOrNo.NO) + .shareIncomeExpenseDetails(YesOrNo.YES) + .regularIncome("INCOME_FROM_JOBS") + .universalCredit(YesOrNo.YES) + .ucApplicationDate(LocalDate.of(2024, 5, 12)) + .priorityDebts(YesOrNo.YES) + .debtTotal(new BigDecimal("1500.00")) + .debtContribution(new BigDecimal("200.00")) + .debtContributionFrequency("MONTH") + .regularExpenses("FOOD") + .expenseAmount(new BigDecimal("300.00")) + .expenseFrequency("WEEK") + .build(); + + // When + HouseholdCircumstancesEntity entity = underTest.createHouseholdCircumstancesEntity(householdCircumstances); + + // Then + assertThat(entity).isNotNull(); + assertThat(entity.getDependantChildren()).isEqualTo(YesOrNo.NO); + assertThat(entity.getShareIncomeExpenseDetails()).isEqualTo(YesOrNo.YES); + assertThat(entity.getRegularIncome()).isEqualTo("INCOME_FROM_JOBS"); + assertThat(entity.getUniversalCredit()).isEqualTo(YesOrNo.YES); + assertThat(entity.getUcApplicationDate()).isEqualTo(LocalDate.of(2024, 5, 12)); + assertThat(entity.getPriorityDebts()).isEqualTo(YesOrNo.YES); + assertThat(entity.getDebtTotal()).isEqualByComparingTo("1500.00"); + assertThat(entity.getDebtContribution()).isEqualByComparingTo("200.00"); + assertThat(entity.getDebtContributionFrequency()).isEqualTo("MONTH"); + assertThat(entity.getRegularExpenses()).isEqualTo("FOOD"); + assertThat(entity.getExpenseAmount()).isEqualByComparingTo("300.00"); + assertThat(entity.getExpenseFrequency()).isEqualTo("WEEK"); + } + }