diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/DefendantResponses.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/DefendantResponses.java index b58f6df23c..01e95720a2 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/DefendantResponses.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/DefendantResponses.java @@ -45,7 +45,7 @@ public class DefendantResponses { private BigDecimal rentArrearsAmount; @CCD - private YesNoNotSure noticeReceived; + private YesNoNotSure possessionNoticeReceived; @CCD private LocalDate noticeReceivedDate; diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/PaymentAgreement.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/PaymentAgreement.java index 5caf140dbe..0218da3727 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/PaymentAgreement.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/PaymentAgreement.java @@ -16,6 +16,9 @@ public class PaymentAgreement { @CCD private YesOrNo anyPaymentsMade; + + @CCD(max = 500) + private String paymentDetails; @CCD(searchable = false) private YesNoNotSure repaymentPlanAgreed; diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/DefendantResponseService.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/DefendantResponseService.java index 4e2bceaf15..64d87e62fc 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/DefendantResponseService.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/DefendantResponseService.java @@ -117,7 +117,7 @@ private DefendantResponseEntity buildDefendantResponseEntity(ClaimEntity claimRe .claim(claimRef) .party(partyRef) .freeLegalAdvice(responses.getFreeLegalAdvice()) - .possessionNoticeReceived(responses.getNoticeReceived()) + .possessionNoticeReceived(responses.getPossessionNoticeReceived()) .defendantNameConfirmation(responses.getDefendantNameConfirmation()) .landlordRegistered(responses.getLandlordRegistered()) .writtenTerms(responses.getWrittenTerms()) diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementService.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementService.java index 78421eb022..2780e3bbfc 100644 --- a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementService.java +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementService.java @@ -15,6 +15,7 @@ public PaymentAgreementEntity createPaymentAgreementEntity(PaymentAgreement paym PaymentAgreementEntity paymentAgreementEntity = PaymentAgreementEntity.builder() .anyPaymentsMade(paymentAgreement.getAnyPaymentsMade()) + .paymentDetails(paymentAgreement.getPaymentDetails()) .repaymentPlanAgreed(paymentAgreement.getRepaymentPlanAgreed()) .repaymentAgreedDetails(paymentAgreement.getRepaymentAgreedDetails()) .build(); diff --git a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/page/respondpossessionsclaim/RespondToPossessionDraftSavePageTest.java b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/page/respondpossessionsclaim/RespondToPossessionDraftSavePageTest.java index bf37d81970..a1db4f6ec0 100644 --- a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/page/respondpossessionsclaim/RespondToPossessionDraftSavePageTest.java +++ b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/page/respondpossessionsclaim/RespondToPossessionDraftSavePageTest.java @@ -64,7 +64,7 @@ void shouldReturnPartialUpdate() { .build(); DefendantResponses responses = DefendantResponses.builder() - .noticeReceived(YesNoNotSure.NO) + .possessionNoticeReceived(YesNoNotSure.NO) .build(); PCSCase caseData = buildCaseData(PossessionClaimResponse.builder() diff --git a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/DefendantResponseServiceTest.java b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/DefendantResponseServiceTest.java index 84bd80fdde..8c29eae5cc 100644 --- a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/DefendantResponseServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/DefendantResponseServiceTest.java @@ -123,7 +123,7 @@ void shouldSaveDefendantResponseWithJpaProxies() { DefendantResponses responses = DefendantResponses.builder() .freeLegalAdvice(YesNoPreferNotToSay.YES) - .noticeReceived(YesNoNotSure.YES) + .possessionNoticeReceived(YesNoNotSure.YES) .noticeReceivedDate(LocalDate.of(2024, 1, 15)) .rentArrearsAmountConfirmation(YesNoNotSure.NO) .landlordRegistered(YesNoNotSure.YES) @@ -235,6 +235,43 @@ void shouldSaveDefendantResponseWhenReceivedFreeLegalAdviceIsNull() { assertThat(savedResponse.getFreeLegalAdvice()).isNull(); } + @ParameterizedTest(name = "possessionNoticeReceived={0}") + @MethodSource("possessionNoticeReceivedScenarios") + void shouldPersistPossessionNoticeReceived(YesNoNotSure possessionNoticeReceived) { + // Given + when(securityContextService.getCurrentUserId()).thenReturn(USER_ID); + when(defendantResponseRepository.existsByClaimPcsCaseCaseReferenceAndPartyIdamId( + CASE_REFERENCE, USER_ID)).thenReturn(false); + stubPartyLookup(); + stubClaimLookup(); + + DefendantResponses responses = DefendantResponses.builder() + .possessionNoticeReceived(possessionNoticeReceived) + .build(); + + PossessionClaimResponse possessionClaimResponse = PossessionClaimResponse.builder() + .defendantResponses(responses) + .build(); + + // When + underTest.saveDefendantResponse(CASE_REFERENCE, possessionClaimResponse); + + // Then + verify(defendantResponseRepository).save(responseCaptor.capture()); + DefendantResponseEntity savedResponse = responseCaptor.getValue(); + + assertThat(savedResponse.getPossessionNoticeReceived()).isEqualTo(possessionNoticeReceived); + } + + private static Stream possessionNoticeReceivedScenarios() { + return Stream.of( + Arguments.of(YesNoNotSure.YES), + Arguments.of(YesNoNotSure.NO), + Arguments.of(YesNoNotSure.NOT_SURE), + Arguments.of((YesNoNotSure) null) + ); + } + @ParameterizedTest(name = "landlordRegistered={0}") @MethodSource("landlordRegisteredPersistenceScenarios") void shouldPersistLandlordRegistered(YesNoNotSure landlordRegistered) { diff --git a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementServiceTest.java b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementServiceTest.java index d23b29730c..8f220be904 100644 --- a/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/pcs/ccd/service/respondpossessionclaim/PaymentAgreementServiceTest.java @@ -108,6 +108,30 @@ private static Stream repaymentAgreedDetailsScenarios() { ); } + @ParameterizedTest + @MethodSource("paymentDetailsScenarios") + void shouldMapPaymentDetailsField(String expected) { + // Given + PaymentAgreement model = PaymentAgreement.builder() + .paymentDetails(expected) + .build(); + + // When + PaymentAgreementEntity entity = underTest.createPaymentAgreementEntity(model); + + // Then + assertThat(entity).isNotNull(); + assertThat(entity.getPaymentDetails()).isEqualTo(expected); + } + + private static Stream paymentDetailsScenarios() { + return Stream.of( + Arguments.of("Paid £500 on 01/01/2024"), + Arguments.of(""), + Arguments.of((String) null) + ); + } + }