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 ae7184bd17..5caf140dbe 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 @@ -6,6 +6,7 @@ import lombok.NoArgsConstructor; import uk.gov.hmcts.ccd.sdk.api.CCD; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; +import uk.gov.hmcts.reform.pcs.ccd.domain.YesNoNotSure; @Builder @Data @@ -16,4 +17,10 @@ public class PaymentAgreement { @CCD private YesOrNo anyPaymentsMade; + @CCD(searchable = false) + private YesNoNotSure repaymentPlanAgreed; + + @CCD + private String repaymentAgreedDetails; + } 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 f1658f0215..78421eb022 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,8 @@ public PaymentAgreementEntity createPaymentAgreementEntity(PaymentAgreement paym PaymentAgreementEntity paymentAgreementEntity = PaymentAgreementEntity.builder() .anyPaymentsMade(paymentAgreement.getAnyPaymentsMade()) + .repaymentPlanAgreed(paymentAgreement.getRepaymentPlanAgreed()) + .repaymentAgreedDetails(paymentAgreement.getRepaymentAgreedDetails()) .build(); return paymentAgreementEntity; 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 0156b909ee..d23b29730c 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 @@ -8,6 +8,7 @@ import org.junit.jupiter.params.provider.MethodSource; import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.ccd.sdk.type.YesOrNo; +import uk.gov.hmcts.reform.pcs.ccd.domain.YesNoNotSure; import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.PaymentAgreement; import uk.gov.hmcts.reform.pcs.ccd.entity.respondpossessionclaim.PaymentAgreementEntity; @@ -58,5 +59,55 @@ void shouldReturnNullWhenPaymentAgreementIsNull() { assertThat(entity).isNull(); } + @ParameterizedTest + @MethodSource("repaymentPlanAgreedScenarios") + void shouldMapRepaymentPlanAgreedField(YesNoNotSure expected) { + // Given + PaymentAgreement model = PaymentAgreement.builder() + .repaymentPlanAgreed(expected) + .build(); + + // When + PaymentAgreementEntity entity = underTest.createPaymentAgreementEntity(model); + + // Then + assertThat(entity).isNotNull(); + assertThat(entity.getRepaymentPlanAgreed()).isEqualTo(expected); + } + + private static Stream repaymentPlanAgreedScenarios() { + return Stream.of( + Arguments.of(YesNoNotSure.YES), + Arguments.of(YesNoNotSure.NO), + Arguments.of(YesNoNotSure.NOT_SURE), + Arguments.of((YesNoNotSure) null) + ); + } + + @ParameterizedTest + @MethodSource("repaymentAgreedDetailsScenarios") + void shouldMapRepaymentAgreedDetailsField(String expected) { + // Given + PaymentAgreement model = PaymentAgreement.builder() + .repaymentAgreedDetails(expected) + .build(); + + // When + PaymentAgreementEntity entity = underTest.createPaymentAgreementEntity(model); + + // Then + assertThat(entity).isNotNull(); + assertThat(entity.getRepaymentAgreedDetails()).isEqualTo(expected); + } + + private static Stream repaymentAgreedDetailsScenarios() { + return Stream.of( + Arguments.of("Monthly installments"), + Arguments.of(""), + Arguments.of((String) null) + ); + } + + }