Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ded4fe6
adding fields for data persistence of rent arrears page as per data m…
AlexBuzea Mar 9, 2026
8d3872e
Merge branch 'master' into HDPI-3495-rent-arrears-section-backend
AlexBuzea Mar 9, 2026
efa25af
HDPI-3495: Fix migration naming and support 1 billion max
arun-hmcts Mar 12, 2026
23a8791
HDPI-3495: Add min/max validation and tests for rent arrears amount
arun-hmcts Mar 12, 2026
601b574
Merge branch 'master' into HDPI-3495-rent-arrears-section-backend
arun-hmcts Mar 12, 2026
1d71dbd
HDPI-3495: Merge origin/master with rent arrears and tenancy date fea…
arun-hmcts Mar 13, 2026
3807b95
HDPI-3495: Rename migration V063 rent arrears to V064 to fix conflict…
arun-hmcts Mar 13, 2026
f9a2eff
HDPI-3495: Remove rentArrearsAmount field from final submit, keep in …
arun-hmcts Mar 13, 2026
f4010a1
Merge branch 'master' into HDPI-3495-rent-arrears-section-backend
arun-hmcts Mar 13, 2026
c44b265
Merge branch 'master' into HDPI-3495-rent-arrears-section-backend
arun-hmcts Mar 13, 2026
0026ada
Merge branch 'master' into HDPI-3495-rent-arrears-section-backend
arun-hmcts Mar 16, 2026
0229c1b
HDPI-3495: Merge origin/master into rent arrears branch
arun-hmcts Mar 16, 2026
5b3df3b
HDPI-3495: Merge master, resolve conflicts, renumber migration V064->…
arun-hmcts Mar 16, 2026
9d03f59
HDPI-3495: Add defendantNameConfirmation field, restore V065/V066 mig…
arun-hmcts Mar 17, 2026
6a063cd
HDPI-3495: Merge master, resolve conflicts, remove duplicate defendan…
arun-hmcts Mar 17, 2026
1aead6a
HDPI-3495: Restore RentArrears.java from master (local dev changes re…
arun-hmcts Mar 17, 2026
8c95d16
HDPI-3495: Add TODO comment for rentArrearsAmount future party attrib…
arun-hmcts Mar 17, 2026
02c0de5
HDPI-3495: Merge master into rent-arrears-section-backend branch
arun-hmcts Mar 19, 2026
50c4f57
HDPI-3495: Remove duplicate V067 migration file as master V067 alread…
arun-hmcts Mar 19, 2026
d74a3dd
HDPI-3495: Add disputeClaim and disputeClaimDetails fields with tests…
arun-hmcts Mar 20, 2026
d55cf85
HDPI-3495: Merge master into rent-arrears-section-backend branch
arun-hmcts Mar 20, 2026
738d01e
HDPI-3495: Remove min/max validation from rentArrearsAmount to suppor…
arun-hmcts Mar 24, 2026
30a6494
HDPI-3495: Merge master into rent-arrears-section-backend branch
arun-hmcts Mar 27, 2026
8cde33e
HDPI-3495: Merge origin/master into rent-arrears-section-backend branch
arun-hmcts Mar 30, 2026
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 @@ -43,6 +43,9 @@ public class DefendantResponses {
@JacksonMoneyGBP
private BigDecimal rentArrearsAmount;

@CCD
private VerticalYesNo defendantNameConfirmation;

@CCD
private YesNoNotSure noticeReceived;

Expand All @@ -68,10 +71,13 @@ public class DefendantResponses {
private LocalDate dateOfBirth;

@CCD
private VerticalYesNo defendantNameConfirmation;
private YesNoNotSure landlordRegistered;

@CCD
private YesNoNotSure landlordRegistered;
private uk.gov.hmcts.ccd.sdk.type.YesOrNo disputeClaim;

@CCD
private String disputeClaimDetails;

@CCD
private YesNoNotSure writtenTerms;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ private DefendantResponseEntity buildDefendantResponseEntity(ClaimEntity claimRe
DefendantResponses responses) {

YesNoNotSure tenancyStartDateConfirmation = responses.getTenancyStartDateConfirmation();
// TODO: rentArrearsAmount on final submit will be later stored in party attribute assertion
DefendantResponseEntity defendantResponse = DefendantResponseEntity.builder()
.claim(claimRef)
.party(partyRef)
Expand All @@ -130,6 +131,8 @@ private DefendantResponseEntity buildDefendantResponseEntity(ClaimEntity claimRe
.landlordLicensed(responses.getLandlordLicensed())
.noticeReceivedDate(responses.getNoticeReceivedDate())
.rentArrearsAmountConfirmation(responses.getRentArrearsAmountConfirmation())
.disputeClaim(responses.getDisputeClaim())
.disputeClaimDetails(responses.getDisputeClaimDetails())
.build();

//set bidirectional relationship with the pcs case
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,37 @@ void shouldSkipValidationWhenDefendantContactDetailsIsNull() {
assertThat(savedDraft.getPossessionClaimResponse().getDefendantResponses()).isEqualTo(responses);
}

@Test
void shouldSaveDisputeClaimAndDisputeClaimDetailsInDraft() {
//Given
String disputeDetails = "I dispute the rent arrears amount because the landlord has "
+ "not provided accurate records";
DefendantResponses responses = DefendantResponses.builder()
.disputeClaim(YesOrNo.YES)
.disputeClaimDetails(disputeDetails)
.freeLegalAdvice(YesNoPreferNotToSay.YES)
.build();

PCSCase caseData = buildCaseData(PossessionClaimResponse.builder()
.defendantResponses(responses)
.build());

//When
AboutToStartOrSubmitResponse<PCSCase, State> response = callMidEventHandler(caseData);

//Then
assertThat(response.getErrors()).isNull();
verifyNoInteractions(immutableFieldValidator);
verify(draftCaseDataService).patchUnsubmittedEventData(
eq(TEST_CASE_REFERENCE), pcsCaseCaptor.capture(), eq(respondPossessionClaim)
);
PCSCase savedDraft = pcsCaseCaptor.getValue();
DefendantResponses savedResponses = savedDraft.getPossessionClaimResponse().getDefendantResponses();
assertThat(savedResponses.getDisputeClaim()).isEqualTo(YesOrNo.YES);
assertThat(savedResponses.getDisputeClaimDetails()).isEqualTo(disputeDetails);
assertThat(savedResponses.getFreeLegalAdvice()).isEqualTo(YesNoPreferNotToSay.YES);
}

@Test
void shouldReturnErrorWhenDraftSaveFails() {
//Given
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -661,4 +661,50 @@ private static Stream<Arguments> tenancyStartDateConfirmationScenarios() {
);

}

@ParameterizedTest(name = "disputeClaim={0}, disputeClaimDetails={1}")
@MethodSource("disputeClaimPersistenceScenarios")
void shouldPersistDisputeClaimAndDisputeClaimDetails(
YesOrNo disputeClaim,
String disputeClaimDetails
) {
// Given
when(securityContextService.getCurrentUserId()).thenReturn(USER_ID);
when(defendantResponseRepository.existsByClaimPcsCaseCaseReferenceAndPartyIdamId(
CASE_REFERENCE, USER_ID)).thenReturn(false);

stubPartyLookup();
stubClaimLookup();

DefendantResponses responses = DefendantResponses.builder()
.disputeClaim(disputeClaim)
.disputeClaimDetails(disputeClaimDetails)
.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.getDisputeClaim()).isEqualTo(disputeClaim);
assertThat(savedResponse.getDisputeClaimDetails()).isEqualTo(disputeClaimDetails);
}

private static Stream<Arguments> disputeClaimPersistenceScenarios() {
return Stream.of(
Arguments.of(YesOrNo.YES,
"I dispute the rent arrears amount because the landlord has not provided accurate records"),
Arguments.of(YesOrNo.NO, null),
Arguments.of(YesOrNo.YES,
"The property has significant disrepair issues that have not been addressed"),
Arguments.of(null, null),
Arguments.of(YesOrNo.YES, null)
);
}
}
Loading