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 5b62f28210..136d8efa09 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 @@ -118,4 +118,11 @@ public class DefendantResponses { private String otherConsiderationsDetails; @CCD private VerticalYesNo makeCounterClaim; + + @CCD( + access = {CitizenAccess.class}, + typeOverride = FieldType.MultiSelectList, + typeParameterOverride = "RespondToClaimSection" + ) + private List completedSections; } diff --git a/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/RespondToClaimSection.java b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/RespondToClaimSection.java new file mode 100644 index 0000000000..63a135721f --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/pcs/ccd/domain/respondpossessionclaim/RespondToClaimSection.java @@ -0,0 +1,12 @@ +package uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim; + +public enum RespondToClaimSection { + START_NOW_AND_DETAILS, + PERSONAL_DETAILS, + DISPUTE_AND_TENANCY, + PAYMENTS, + SITUATION_AND_CIRCUMSTANCES, + INCOME_AND_EXPENDITURE, + UPLOAD_FILES, + CHECK_YOUR_ANSWERS_AND_SUBMIT +} 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 0907080616..9092513330 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 @@ -23,6 +23,7 @@ import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.PossessionClaimResponse; import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.ReasonableAdjustments; import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.RecurrenceFrequency; +import uk.gov.hmcts.reform.pcs.ccd.domain.respondpossessionclaim.RespondToClaimSection; import uk.gov.hmcts.reform.pcs.ccd.page.BasePageTest; import uk.gov.hmcts.reform.pcs.ccd.page.respondpossessionclaim.page.RespondToPossessionDraftSavePage; import uk.gov.hmcts.reform.pcs.ccd.service.DraftCaseDataService; @@ -392,6 +393,34 @@ void shouldSaveRegularIncomeFieldsInDraft() { .isEqualTo("Child maintenance payments of £100 per week"); } + @Test + void shouldRoundTripCompletedSectionsInDraft() { + //Given + DefendantResponses responses = DefendantResponses.builder() + .completedSections(java.util.List.of( + RespondToClaimSection.START_NOW_AND_DETAILS, + RespondToClaimSection.PERSONAL_DETAILS)) + .build(); + + PCSCase caseData = buildCaseData(PossessionClaimResponse.builder() + .defendantResponses(responses) + .build()); + + //When + AboutToStartOrSubmitResponse response = callMidEventHandler(caseData); + + //Then + assertThat(response.getErrors()).isNull(); + verify(draftCaseDataService).saveUnsubmittedEventData( + eq(TEST_CASE_REFERENCE), pcsCaseCaptor.capture(), eq(respondPossessionClaim) + ); + PCSCase savedDraft = pcsCaseCaptor.getValue(); + assertThat(savedDraft.getPossessionClaimResponse().getDefendantResponses().getCompletedSections()) + .containsExactly( + RespondToClaimSection.START_NOW_AND_DETAILS, + RespondToClaimSection.PERSONAL_DETAILS); + } + @Test void shouldReturnErrorWhenDraftSaveFails() { //Given