diff --git a/src/main/java/uk/gov/hmcts/reform/civil/service/FeatureToggleService.java b/src/main/java/uk/gov/hmcts/reform/civil/service/FeatureToggleService.java index 01523add835..4febc41213a 100644 --- a/src/main/java/uk/gov/hmcts/reform/civil/service/FeatureToggleService.java +++ b/src/main/java/uk/gov/hmcts/reform/civil/service/FeatureToggleService.java @@ -103,7 +103,12 @@ public boolean isCjesServiceAvailable() { } public boolean isCarmEnabledForCase(CaseData caseData) { - return SPEC_CLAIM.equals(caseData.getCaseAccessCategory()); + ZoneId zoneId = ZoneId.systemDefault(); + long epoch = caseData.getSubmittedDate().atZone(zoneId).toEpochSecond(); + boolean isSpecClaim = SPEC_CLAIM.equals(caseData.getCaseAccessCategory()); + return isSpecClaim && featureToggleApi.isFeatureEnabled("carm") + && featureToggleApi.isFeatureEnabledForDate("cam-enabled-for-case", + epoch, false); } public boolean isGaForLipsEnabled() { diff --git a/src/test/java/uk/gov/hmcts/reform/civil/service/FeatureToggleServiceTest.java b/src/test/java/uk/gov/hmcts/reform/civil/service/FeatureToggleServiceTest.java index a6ffb03fefc..630daac38f0 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/service/FeatureToggleServiceTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/service/FeatureToggleServiceTest.java @@ -227,6 +227,25 @@ void shouldReturnCorrectValue_whenisCjesServiceAvailableEnabled(Boolean toggleSt assertThat(featureToggleService.isCjesServiceAvailable()).isEqualTo(toggleStat); } + @ParameterizedTest + @ValueSource(booleans = {true, false}) + void shouldReturnCorrectValue_whenIsCarmEnabled(Boolean toggleStat) { + var carmKey = "carm"; + var carmDateKey = "cam-enabled-for-case"; + givenToggle(carmKey, toggleStat); + + CaseData caseData = CaseDataBuilder.builder().atStateClaimIssued() + .setClaimTypeToSpecClaim() + .build(); + + if (toggleStat) { + when(featureToggleApi.isFeatureEnabledForDate(eq(carmDateKey), anyLong(), eq(false))) + .thenReturn(true); + } + + assertThat(featureToggleService.isCarmEnabledForCase(caseData)).isEqualTo(toggleStat); + } + @ParameterizedTest @ValueSource(booleans = {true, false}) void shouldReturnCorrectValue_whenMultiOrIntermediateTrackEnabled(Boolean toggleStat) {