diff --git a/README.md b/README.md index 6c52df7adf6..bcf05558ee4 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ In some setups you will need a mirrord config file specifying the pod as below. The script should create a /.mirrord/.mirrord.json config file under the project's root directory. Specifically for civil-service you might need to exclude a flyway environment variable to allow the startup process to run without errors. -For that you should have such file as this: +For that you should have such file as this:: ```json { diff --git a/src/main/java/uk/gov/hmcts/reform/civil/enums/dj/CaseManagementOrderAdditional.java b/src/main/java/uk/gov/hmcts/reform/civil/enums/dj/CaseManagementOrderAdditional.java index 2a6504526e0..66f8a09316e 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/enums/dj/CaseManagementOrderAdditional.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/enums/dj/CaseManagementOrderAdditional.java @@ -6,6 +6,7 @@ public enum CaseManagementOrderAdditional { OrderTypeTrialAdditionalDirectionsCreditHire, OrderTypeTrialAdditionalDirectionsEmployersLiability, OrderTypeTrialAdditionalDirectionsHousingDisrepair, + OrderTypeTrialAdditionalDirectionsPPI, OrderTypeTrialAdditionalDirectionsPersonalInjury, OrderTypeTrialAdditionalDirectionsRoadTrafficAccident } diff --git a/src/main/java/uk/gov/hmcts/reform/civil/model/CivilCaseData.java b/src/main/java/uk/gov/hmcts/reform/civil/model/CivilCaseData.java index b034f666390..202b189615d 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/model/CivilCaseData.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/model/CivilCaseData.java @@ -51,7 +51,6 @@ import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHearingSchedulesOfLoss; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHearingTrial; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHearingWitnessOfFact; -import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPersonalInjury; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialRoadTrafficAccident; import uk.gov.hmcts.reform.civil.model.sdo.DisposalHearingAddNewDirections; @@ -79,6 +78,7 @@ import uk.gov.hmcts.reform.civil.model.sdo.FastTrackHearingNotes; import uk.gov.hmcts.reform.civil.model.sdo.FastTrackHearingTime; import uk.gov.hmcts.reform.civil.model.sdo.HousingDisrepair; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; import uk.gov.hmcts.reform.civil.model.sdo.FastTrackJudgementDeductionValue; import uk.gov.hmcts.reform.civil.model.sdo.FastTrackJudgesRecital; import uk.gov.hmcts.reform.civil.model.sdo.FastTrackNotes; @@ -89,6 +89,7 @@ import uk.gov.hmcts.reform.civil.model.sdo.FastTrackTrial; import uk.gov.hmcts.reform.civil.model.sdo.FastTrackWitnessOfFact; import uk.gov.hmcts.reform.civil.model.sdo.JudgementSum; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; import uk.gov.hmcts.reform.civil.model.sdo.ReasonNotSuitableSDO; import uk.gov.hmcts.reform.civil.model.sdo.SmallClaimsAddNewDirections; import uk.gov.hmcts.reform.civil.model.sdo.SmallClaimsCreditHire; @@ -130,6 +131,7 @@ public class CivilCaseData extends BaseCaseData implements MappableObject { private TrialRoadTrafficAccident trialRoadTrafficAccident; private TrialEmployersLiability trialEmployersLiability; private TrialHousingDisrepair trialHousingDisrepair; + private TrialPPI trialPPI; private DisposalHearingMethodDJ trialHearingMethodDJ; private HearingMethodTelephoneHearingDJ trialHearingMethodTelephoneHearingDJ; private HearingMethodVideoConferenceDJ trialHearingMethodVideoConferenceHearingDJ; diff --git a/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialHousingDisrepair.java b/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialHousingDisrepair.java index b76840905bd..9ad462fc194 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialHousingDisrepair.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialHousingDisrepair.java @@ -1,5 +1,7 @@ package uk.gov.hmcts.reform.civil.model.defaultjudgment; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -12,8 +14,21 @@ @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) public class TrialHousingDisrepair { + private String clauseA; + private String clauseB; + @Future(message = "The date entered must be in the future") + private LocalDate firstReportDateBy; + private String clauseCBeforeDate; + @Future(message = "The date entered must be in the future") + private LocalDate jointStatementDateBy; + private String clauseCAfterDate; + private String clauseD; + private String clauseE; + private String input1; private String input2; private String input3; diff --git a/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialPPI.java b/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialPPI.java new file mode 100644 index 00000000000..f5b48f516b4 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/civil/model/defaultjudgment/TrialPPI.java @@ -0,0 +1,25 @@ +package uk.gov.hmcts.reform.civil.model.defaultjudgment; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import jakarta.validation.constraints.Future; +import java.time.LocalDate; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class TrialPPI { + + @Future(message = "The date entered must be in the future") + private LocalDate ppiDate; + + private String text; +} diff --git a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsService.java b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsService.java index a0145cd5a51..c6217d55e0f 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsService.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsService.java @@ -2,13 +2,23 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import uk.gov.hmcts.reform.civil.constants.SdoR2UiConstantSmallClaim; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialBuildingDispute; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; + +import java.time.LocalDate; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_CLAIMANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_COLUMNS_DJ; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_DEFENDANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_INTRO_DJ; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_A; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_B; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_C_AFTER_DATE; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_C_BEFORE_DATE; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_D; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_E; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_CLAIMANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_COLUMNS_DJ; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_DEFENDANT_INSTRUCTION; @@ -39,4 +49,22 @@ public TrialHousingDisrepair buildTrialHousingDisrepair() { .setInput4(HOUSING_SCHEDULE_DEFENDANT_INSTRUCTION) .setDate2(deadlineService.nextWorkingDayInWeeks(12)); } + + public TrialHousingDisrepair buildTrialHousingDisrepairOtherRemedy() { + return new TrialHousingDisrepair() + .setClauseA(HOUSING_DISREPAIR_CLAUSE_A) + .setClauseB(HOUSING_DISREPAIR_CLAUSE_B) + .setFirstReportDateBy(deadlineService.nextWorkingDayInWeeks(4)) + .setClauseCBeforeDate(HOUSING_DISREPAIR_CLAUSE_C_BEFORE_DATE) + .setJointStatementDateBy(deadlineService.nextWorkingDayInWeeks(8)) + .setClauseCAfterDate(HOUSING_DISREPAIR_CLAUSE_C_AFTER_DATE) + .setClauseD(HOUSING_DISREPAIR_CLAUSE_D) + .setClauseE(HOUSING_DISREPAIR_CLAUSE_E); + } + + public TrialPPI buildTrialPPI() { + return new TrialPPI() + .setPpiDate(LocalDate.now().plusDays(28)) + .setText(SdoR2UiConstantSmallClaim.PPI_DESCRIPTION); + } } diff --git a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsService.java b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsService.java index c6a53800da7..2a19670d38b 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsService.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsService.java @@ -5,12 +5,14 @@ import uk.gov.hmcts.reform.civil.model.CaseData; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialRoadTrafficAccident; +import uk.gov.hmcts.reform.civil.service.FeatureToggleService; @Service @RequiredArgsConstructor public class DjSpecialistDirectionsService { private final DjSpecialistNarrativeService narrativeService; + private final FeatureToggleService featureToggleService; public void populateSpecialistDirections(CaseData.CaseDataBuilder caseDataBuilder) { caseDataBuilder.trialBuildingDispute(narrativeService.buildTrialBuildingDispute()); @@ -21,7 +23,14 @@ public void populateSpecialistDirections(CaseData.CaseDataBuilder caseData TrialRoadTrafficAccident roadTrafficAccident = narrativeService.buildTrialRoadTrafficAccident(); caseDataBuilder.trialRoadTrafficAccident(roadTrafficAccident); - TrialHousingDisrepair housingDisrepair = narrativeService.buildTrialHousingDisrepair(); - caseDataBuilder.trialHousingDisrepair(housingDisrepair); + if (featureToggleService.isOtherRemedyEnabled()) { + TrialHousingDisrepair housingDisrepairOtherRemedy = + narrativeService.buildTrialHousingDisrepairOtherRemedy(); + caseDataBuilder.trialHousingDisrepair(housingDisrepairOtherRemedy); + caseDataBuilder.trialPPI(narrativeService.buildTrialPPI()); + } else { + caseDataBuilder.trialHousingDisrepair(narrativeService.buildTrialHousingDisrepair()); + caseDataBuilder.trialPPI(null); + } } } diff --git a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeService.java b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeService.java index 981e3817ed8..59a0516c5c2 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeService.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeService.java @@ -6,6 +6,7 @@ import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialBuildingDispute; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialClinicalNegligence; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPersonalInjury; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialRoadTrafficAccident; @@ -41,4 +42,12 @@ public TrialRoadTrafficAccident buildTrialRoadTrafficAccident() { public TrialHousingDisrepair buildTrialHousingDisrepair() { return buildingDisputeDirectionsService.buildTrialHousingDisrepair(); } + + public TrialHousingDisrepair buildTrialHousingDisrepairOtherRemedy() { + return buildingDisputeDirectionsService.buildTrialHousingDisrepairOtherRemedy(); + } + + public TrialPPI buildTrialPPI() { + return buildingDisputeDirectionsService.buildTrialPPI(); + } } diff --git a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsServiceTest.java b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsServiceTest.java index 33a94d5b109..fd49811879f 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjBuildingDisputeDirectionsServiceTest.java @@ -7,18 +7,21 @@ import org.mockito.junit.jupiter.MockitoExtension; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialBuildingDispute; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; +import uk.gov.hmcts.reform.civil.constants.SdoR2UiConstantSmallClaim; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; import java.time.LocalDate; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.lenient; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_CLAIMANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_COLUMNS_DJ; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_DEFENDANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.BUILDING_SCHEDULE_INTRO_DJ; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_CLAIMANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_COLUMNS_DJ; +import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_DISREPAIR_CLAUSE_A; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_DEFENDANT_INSTRUCTION; import static uk.gov.hmcts.reform.civil.service.directionsorder.DirectionsOrderSpecialistTextLibrary.HOUSING_SCHEDULE_INTRO_DJ; @@ -33,7 +36,7 @@ class DjBuildingDisputeDirectionsServiceTest { @BeforeEach void setUp() { service = new DjBuildingDisputeDirectionsService(deadlineService); - when(deadlineService.nextWorkingDayInWeeks(anyInt())) + lenient().when(deadlineService.nextWorkingDayInWeeks(anyInt())) .thenAnswer(invocation -> LocalDate.of(2025, 6, 1) .plusWeeks(invocation.getArgument(0, Integer.class))); } @@ -61,4 +64,22 @@ void shouldBuildTrialHousingDisrepair() { assertThat(housing.getInput3()).isEqualTo(HOUSING_SCHEDULE_CLAIMANT_INSTRUCTION); assertThat(housing.getInput4()).isEqualTo(HOUSING_SCHEDULE_DEFENDANT_INSTRUCTION); } + + @Test + void shouldBuildTrialHousingDisrepairOtherRemedy() { + TrialHousingDisrepair housing = service.buildTrialHousingDisrepairOtherRemedy(); + + assertThat(housing.getClauseA()).isEqualTo(HOUSING_DISREPAIR_CLAUSE_A); + assertThat(housing.getFirstReportDateBy()).isEqualTo(LocalDate.of(2025, 6, 1).plusWeeks(4)); + assertThat(housing.getJointStatementDateBy()).isEqualTo(LocalDate.of(2025, 6, 1).plusWeeks(8)); + assertThat(housing.getInput1()).isNull(); + } + + @Test + void shouldBuildTrialPpiWithCalendarDayDeadline() { + TrialPPI ppi = service.buildTrialPPI(); + + assertThat(ppi.getPpiDate()).isEqualTo(LocalDate.now().plusDays(28)); + assertThat(ppi.getText()).isEqualTo(SdoR2UiConstantSmallClaim.PPI_DESCRIPTION); + } } diff --git a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsServiceTest.java b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsServiceTest.java index 52621f4163e..aad4073b29c 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistDirectionsServiceTest.java @@ -11,11 +11,14 @@ import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialClinicalNegligence; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPersonalInjury; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialRoadTrafficAccident; import uk.gov.hmcts.reform.civil.sampledata.CaseDataBuilder; +import uk.gov.hmcts.reform.civil.service.FeatureToggleService; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) @@ -24,6 +27,9 @@ class DjSpecialistDirectionsServiceTest { @Mock private DjSpecialistNarrativeService narrativeService; + @Mock + private FeatureToggleService featureToggleService; + @InjectMocks private DjSpecialistDirectionsService service; @@ -36,6 +42,7 @@ void shouldPopulateSpecialistDirectionsUsingNarratives() { TrialRoadTrafficAccident rta = new TrialRoadTrafficAccident(); TrialHousingDisrepair housingDisrepair = new TrialHousingDisrepair(); + when(featureToggleService.isOtherRemedyEnabled()).thenReturn(false); when(narrativeService.buildTrialBuildingDispute()).thenReturn(buildingDispute); when(narrativeService.buildTrialClinicalNegligence()).thenReturn(clinicalNegligence); when(narrativeService.buildCreditHireDirections()).thenReturn(creditHire); @@ -56,6 +63,7 @@ void shouldPopulateSpecialistDirectionsUsingNarratives() { assertThat(result.getTrialPersonalInjury()).isSameAs(personalInjury); assertThat(result.getTrialRoadTrafficAccident()).isSameAs(rta); assertThat(result.getTrialHousingDisrepair()).isSameAs(housingDisrepair); + assertThat(result.getTrialPPI()).isNull(); verify(narrativeService).buildTrialBuildingDispute(); verify(narrativeService).buildTrialClinicalNegligence(); @@ -63,5 +71,44 @@ void shouldPopulateSpecialistDirectionsUsingNarratives() { verify(narrativeService).buildTrialPersonalInjury(); verify(narrativeService).buildTrialRoadTrafficAccident(); verify(narrativeService).buildTrialHousingDisrepair(); + verifyNoMoreInteractions(narrativeService); + } + + @Test + void shouldPopulateOtherRemedyHousingDisrepairAndPpiWhenToggleEnabled() { + TrialBuildingDispute buildingDispute = new TrialBuildingDispute(); + TrialClinicalNegligence clinicalNegligence = new TrialClinicalNegligence(); + SdoDJR2TrialCreditHire creditHire = new SdoDJR2TrialCreditHire(); + TrialPersonalInjury personalInjury = new TrialPersonalInjury(); + TrialRoadTrafficAccident rta = new TrialRoadTrafficAccident(); + TrialHousingDisrepair housingOtherRemedy = new TrialHousingDisrepair(); + TrialPPI trialPpi = new TrialPPI(); + + when(featureToggleService.isOtherRemedyEnabled()).thenReturn(true); + when(narrativeService.buildTrialBuildingDispute()).thenReturn(buildingDispute); + when(narrativeService.buildTrialClinicalNegligence()).thenReturn(clinicalNegligence); + when(narrativeService.buildCreditHireDirections()).thenReturn(creditHire); + when(narrativeService.buildTrialPersonalInjury()).thenReturn(personalInjury); + when(narrativeService.buildTrialRoadTrafficAccident()).thenReturn(rta); + when(narrativeService.buildTrialHousingDisrepairOtherRemedy()).thenReturn(housingOtherRemedy); + when(narrativeService.buildTrialPPI()).thenReturn(trialPpi); + + CaseData caseData = CaseDataBuilder.builder().build(); + CaseData.CaseDataBuilder builder = caseData.toBuilder(); + + service.populateSpecialistDirections(builder); + + CaseData result = builder.build(); + + assertThat(result.getTrialHousingDisrepair()).isSameAs(housingOtherRemedy); + assertThat(result.getTrialPPI()).isSameAs(trialPpi); + + verify(narrativeService).buildTrialBuildingDispute(); + verify(narrativeService).buildTrialClinicalNegligence(); + verify(narrativeService).buildCreditHireDirections(); + verify(narrativeService).buildTrialPersonalInjury(); + verify(narrativeService).buildTrialRoadTrafficAccident(); + verify(narrativeService).buildTrialHousingDisrepairOtherRemedy(); + verify(narrativeService).buildTrialPPI(); } } diff --git a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeServiceTest.java b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeServiceTest.java index 037b3efccde..cb5e879c2bb 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjSpecialistNarrativeServiceTest.java @@ -9,6 +9,7 @@ import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialBuildingDispute; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialHousingDisrepair; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPersonalInjury; +import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialPPI; import uk.gov.hmcts.reform.civil.model.defaultjudgment.TrialRoadTrafficAccident; import java.time.LocalDate; @@ -93,4 +94,26 @@ void shouldBuildRtaAndHousingDisrepairDirections() { verify(roadTrafficAccidentDirectionsService).buildTrialRoadTrafficAccident(); verify(buildingDisputeDirectionsService).buildTrialHousingDisrepair(); } + + @Test + void shouldBuildOtherRemedyHousingDisrepair() { + TrialHousingDisrepair expected = new TrialHousingDisrepair(); + when(buildingDisputeDirectionsService.buildTrialHousingDisrepairOtherRemedy()).thenReturn(expected); + + TrialHousingDisrepair housing = service.buildTrialHousingDisrepairOtherRemedy(); + + assertThat(housing).isSameAs(expected); + verify(buildingDisputeDirectionsService).buildTrialHousingDisrepairOtherRemedy(); + } + + @Test + void shouldBuildTrialPpi() { + TrialPPI expected = new TrialPPI(); + when(buildingDisputeDirectionsService.buildTrialPPI()).thenReturn(expected); + + TrialPPI ppi = service.buildTrialPPI(); + + assertThat(ppi).isSameAs(expected); + verify(buildingDisputeDirectionsService).buildTrialPPI(); + } } diff --git a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjTrialDirectionsServiceTest.java b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjTrialDirectionsServiceTest.java index 31ea68c9c34..821bffcd212 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjTrialDirectionsServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/service/dj/DjTrialDirectionsServiceTest.java @@ -17,6 +17,7 @@ import uk.gov.hmcts.reform.civil.model.sdo.TrialOrderMadeWithoutHearingDJ; import uk.gov.hmcts.reform.civil.sampledata.CaseDataBuilder; import uk.gov.hmcts.reform.civil.service.DeadlinesCalculator; +import uk.gov.hmcts.reform.civil.service.FeatureToggleService; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -26,6 +27,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) @@ -76,7 +78,9 @@ void setUp() { roadTrafficAccidentDirectionsService, creditHireDirectionsService ); - return new DjSpecialistDirectionsService(narrativeService); + FeatureToggleService featureToggleService = mock(FeatureToggleService.class); + when(featureToggleService.isOtherRemedyEnabled()).thenReturn(false); + return new DjSpecialistDirectionsService(narrativeService, featureToggleService); } @Test