From d134c1c3e12e0dfde57e8cfb16c9143d550f23a6 Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 14:30:54 +0100 Subject: [PATCH 01/15] DIAC-577 integrating Timed Event Service into bail-case-api --- Jenkinsfile_nightly | 1 + Jenkinsfile_parameterized | 1 + .../values.preview.template.yaml | 4 +- charts/ia-bail-case-api/values.yaml | 2 + .../bailcaseapi/domain/service/Scheduler.java | 10 ++ .../AsylumCaseServiceResponseException.java | 11 ++ .../TimedEventMessageConverterCustomizer.java | 34 ++++++ .../clients/TimedEventServiceApi.java | 62 ++++++++++ .../clients/TimedEventServiceScheduler.java | 76 +++++++++++++ .../clients/model/TimedEvent.java | 22 ++++ src/main/resources/application.yaml | 4 + .../TimedEventServiceSchedulerTest.java | 106 ++++++++++++++++++ 12 files changed, 332 insertions(+), 1 deletion(-) create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/service/Scheduler.java create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/AsylumCaseServiceResponseException.java create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventMessageConverterCustomizer.java create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceApi.java create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceScheduler.java create mode 100644 src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/model/TimedEvent.java create mode 100644 src/test/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceSchedulerTest.java diff --git a/Jenkinsfile_nightly b/Jenkinsfile_nightly index 68586ed58..01469d575 100644 --- a/Jenkinsfile_nightly +++ b/Jenkinsfile_nightly @@ -94,6 +94,7 @@ withNightlyPipeline(type, product, component) { env.IA_CASE_DOCUMENTS_API_URL = "http://ia-case-documents-api-aat.service.core-compute-aat.internal/" env.IA_CASE_NOTIFICATIONS_API_URL = "http://ia-case-notifications-api-aat.service.core-compute-aat.internal/" + env.IA_TIMED_EVENT_SERVICE_URL = "http://ia-timed-event-service-aat.service.core-compute-aat.internal/" env.IA_IDAM_REDIRECT_URI = "https://ia-bail-case-api-aat.service.core-compute-aat.internal/oauth2/callback" env.CCD_URL = "http://ccd-data-store-api-aat.service.core-compute-aat.internal" env.CCD_GW_URL = "http://dm-store-aat.service.core-compute-aat.internal" diff --git a/Jenkinsfile_parameterized b/Jenkinsfile_parameterized index d2617753e..7efd12be7 100644 --- a/Jenkinsfile_parameterized +++ b/Jenkinsfile_parameterized @@ -73,6 +73,7 @@ withParameterizedPipeline(params.TYPE, params.PRODUCT_NAME, params.APP, params.E env.IA_CASE_DOCUMENTS_API_URL = "http://ia-case-documents-api-aat.service.core-compute-aat.internal/" env.IA_CASE_NOTIFICATIONS_API_URL = "http://ia-case-notifications-api-aat.service.core-compute-aat.internal/" + env.IA_TIMED_EVENT_SERVICE_URL = "http://ia-timed-event-service-aat.service.core-compute-aat.internal/" env.IA_IDAM_REDIRECT_URI = "https://ia-bail-case-api-aat.service.core-compute-aat.internal/oauth2/callback" env.CCD_URL = "http://ccd-data-store-api-aat.service.core-compute-aat.internal" env.CCD_GW_URL = "http://dm-store-aat.service.core-compute-aat.internal" diff --git a/charts/ia-bail-case-api/values.preview.template.yaml b/charts/ia-bail-case-api/values.preview.template.yaml index 50a6f7a49..78f0751cd 100644 --- a/charts/ia-bail-case-api/values.preview.template.yaml +++ b/charts/ia-bail-case-api/values.preview.template.yaml @@ -14,4 +14,6 @@ java: IA_CASE_DOCUMENTS_API_URL: "http://ia-case-documents-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal/" IA_CASE_NOTIFICATIONS_API_URL: "http://ia-case-notifications-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal/" CASE_DOCUMENT_AM_URL: "http://ccd-case-document-am-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal" - LOCATION_REF_DATA_URL: "http://rd-location-ref-api-aat.service.core-compute-aat.internal" + LOCATION_REF_DATA_URL: "http://rd-location-ref-api-aat.service.core-compute-aat.internal" + IA_TIMED_EVENT_SERVICE_URL: "http://ia-timed-event-service-aat.service.core-compute-aat.internal/" + IA_TIMED_EVENT_SERVICE_ENABLED: "true" diff --git a/charts/ia-bail-case-api/values.yaml b/charts/ia-bail-case-api/values.yaml index 0b97e4c7d..3ec50bd0f 100644 --- a/charts/ia-bail-case-api/values.yaml +++ b/charts/ia-bail-case-api/values.yaml @@ -19,6 +19,8 @@ java: IA_CASE_NOTIFICATIONS_API_URL: "http://ia-case-notifications-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal/" CASE_DOCUMENT_AM_URL: "http://ccd-case-document-am-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal" COMMON_DATA_API: http://rd-commondata-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal + IA_TIMED_EVENT_SERVICE_URL: "http://ia-timed-event-service-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal/" + IA_TIMED_EVENT_SERVICE_ENABLED: "false" keyVaults: ia: resourceGroup: ia diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/service/Scheduler.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/service/Scheduler.java new file mode 100644 index 000000000..ebbddaf98 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/service/Scheduler.java @@ -0,0 +1,10 @@ +package uk.gov.hmcts.reform.bailcaseapi.domain.service; + +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; + +public interface Scheduler { + + TimedEvent schedule(TimedEvent timedEvent); + + boolean deleteSchedule(String timedEventId); +} diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/AsylumCaseServiceResponseException.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/AsylumCaseServiceResponseException.java new file mode 100644 index 000000000..1c56c5f17 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/AsylumCaseServiceResponseException.java @@ -0,0 +1,11 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients; + +public class AsylumCaseServiceResponseException extends RuntimeException { + + public AsylumCaseServiceResponseException( + String message, + Throwable cause + ) { + super(message, cause); + } +} diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventMessageConverterCustomizer.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventMessageConverterCustomizer.java new file mode 100644 index 000000000..72789024e --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventMessageConverterCustomizer.java @@ -0,0 +1,34 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.ObjectProvider; + +import java.util.function.Consumer; + +public class TimedEventMessageConverterCustomizer implements ObjectProvider { + @Override + public T getObject() throws BeansException { + return null; + } + + @Override + public T getObject(Object... args) throws BeansException { + return null; + } + + @Override + public T getIfAvailable() throws BeansException { + return null; + } + + @Override + public T getIfUnique() throws BeansException { + return null; + } + + @Override + public void forEach(Consumer action) { + // do nothing + } + +} diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceApi.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceApi.java new file mode 100644 index 000000000..6c4c12ce7 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceApi.java @@ -0,0 +1,62 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients; + +import com.fasterxml.jackson.databind.ObjectMapper; +import feign.Feign; +import feign.codec.Decoder; +import org.springframework.boot.autoconfigure.http.HttpMessageConverters; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.support.ResponseEntityDecoder; +import org.springframework.cloud.openfeign.support.SpringDecoder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Scope; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.bind.annotation.*; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.config.DisableHystrixFeignConfiguration; + +import static org.springframework.http.HttpHeaders.AUTHORIZATION; +import static uk.gov.hmcts.reform.bailcaseapi.infrastructure.config.ServiceTokenGeneratorConfiguration.SERVICE_AUTHORIZATION; + +@FeignClient( + name = "timed-event-service-api", + url = "${timed-event-service.url}", + configuration = {TimedEventServiceApi.Configuration.class, DisableHystrixFeignConfiguration.class} +) +public interface TimedEventServiceApi { + + @PostMapping(value = "/timed-event", produces = "application/json", consumes = "application/json") + TimedEvent submitTimedEvent( + @RequestHeader(AUTHORIZATION) String userToken, + @RequestHeader(SERVICE_AUTHORIZATION) String s2sToken, + @RequestBody TimedEvent content + ); + + @DeleteMapping(value = "/timed-event/{id}", produces = "application/json", consumes = "application/json") + void deleteTimedEvent( + @RequestHeader(AUTHORIZATION) String userToken, + @RequestHeader(SERVICE_AUTHORIZATION) String s2sToken, + @PathVariable("id") String jobKey + ); + + + class Configuration { + + @Bean + public Decoder decoder(ObjectMapper objectMapper) { + HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper); + return new ResponseEntityDecoder(new SpringDecoder(() -> new HttpMessageConverters(jacksonConverter), new TimedEventMessageConverterCustomizer<>())); + } + + @Bean + @Scope("prototype") + public Feign.Builder feignBuilder() { + return Feign.builder(); + } + + } + + + +} + diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceScheduler.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceScheduler.java new file mode 100644 index 000000000..d2620c86f --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceScheduler.java @@ -0,0 +1,76 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients; + +import feign.FeignException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import uk.gov.hmcts.reform.authorisation.generators.AuthTokenGenerator; +import uk.gov.hmcts.reform.bailcaseapi.domain.service.Scheduler; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.security.AccessTokenProvider; + +@Service +@Slf4j +public class TimedEventServiceScheduler implements Scheduler { + + private final AuthTokenGenerator serviceAuthTokenGenerator; + private final AccessTokenProvider accessTokenProvider; + private final TimedEventServiceApi timedEventServiceApi; + + public TimedEventServiceScheduler( + AuthTokenGenerator serviceAuthTokenGenerator, + @Qualifier("requestUser") AccessTokenProvider accessTokenProvider, + TimedEventServiceApi timedEventServiceApi + ) { + this.serviceAuthTokenGenerator = serviceAuthTokenGenerator; + this.accessTokenProvider = accessTokenProvider; + this.timedEventServiceApi = timedEventServiceApi; + } + + @Override + public TimedEvent schedule(TimedEvent timedEvent) { + + String serviceAuthorizationToken = serviceAuthTokenGenerator.generate(); + String accessToken = accessTokenProvider.getAccessToken(); + + try { + + return timedEventServiceApi.submitTimedEvent( + accessToken, + serviceAuthorizationToken, + timedEvent + ); + + } catch (FeignException e) { + + throw new AsylumCaseServiceResponseException( + String.format( + "Couldn't schedule timed event for caseId: %d, event: %s", + timedEvent.getCaseId(), + timedEvent.getEvent() + ), + e + ); + } + } + + public boolean deleteSchedule(String timedEventId) { + String serviceAuthorizationToken = serviceAuthTokenGenerator.generate(); + String accessToken = accessTokenProvider.getAccessToken(); + + try { + timedEventServiceApi.deleteTimedEvent( + accessToken, + serviceAuthorizationToken, + timedEventId + ); + } catch (FeignException ex) { + log.warn("The schedule with id {} could not be deleted. This should not happen and may cause problems. " + + "Check that the schedule ID is correct.", + timedEventId); + return false; + } + + return true; + } +} diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/model/TimedEvent.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/model/TimedEvent.java new file mode 100644 index 000000000..55bcc17f6 --- /dev/null +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/model/TimedEvent.java @@ -0,0 +1,22 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.Event; + +import java.time.ZonedDateTime; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +public class TimedEvent { + + private String id; + private Event event; + private ZonedDateTime scheduledDateTime; + private String jurisdiction; + private String caseType; + private long caseId; + +} diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 4d234da72..c1eddfde9 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -211,8 +211,12 @@ prof.ref.data.path.org.users: ${PROF_REF_DATA_ORG_USERS_PATH:/refdata/external/v prof.ref.data.path.org.organisation: ${PROF_REF_DATA_ORG_ORGANISATION_PATH:/refdata/external/v1/organisations} location.ref.data.url: ${LOCATION_REF_DATA_URL:http://localhost:8991} +timed-event-service: + url: ${IA_TIMED_EVENT_SERVICE_URL:http://127.0.0.1:8095} + featureFlag: isDocumentGenerationEnabled: ${IA_DOCUMENT_GENERATION_ENABLED:true} + timedEventServiceEnabled: ${IA_TIMED_EVENT_SERVICE_ENABLED:false} launchDarkly: sdkKey: ${LAUNCH_DARKLY_SDK_KEY:sdk-key} diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceSchedulerTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceSchedulerTest.java new file mode 100644 index 000000000..8263e41d4 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/infrastructure/clients/TimedEventServiceSchedulerTest.java @@ -0,0 +1,106 @@ +package uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients; + +import feign.FeignException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import uk.gov.hmcts.reform.authorisation.generators.AuthTokenGenerator; +import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.Event; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.security.AccessTokenProvider; + +import java.time.ZonedDateTime; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.*; + +@ExtendWith(MockitoExtension.class) +class TimedEventServiceSchedulerTest { + + TimedEventServiceScheduler timedEventServiceScheduler; + @Mock + private AuthTokenGenerator serviceAuthTokenGenerator; + @Mock + private AccessTokenProvider accessTokenProvider; + @Mock + private TimedEventServiceApi timedEventServiceApi; + private String s2sToken = "someS2sToken"; + private String authToken = "authToken"; + + @BeforeEach + public void setup() { + when(serviceAuthTokenGenerator.generate()).thenReturn(s2sToken); + when(accessTokenProvider.getAccessToken()).thenReturn(authToken); + + timedEventServiceScheduler = + new TimedEventServiceScheduler(serviceAuthTokenGenerator, accessTokenProvider, timedEventServiceApi); + } + + + @Test + void should_invoke_timed_event_api() { + + TimedEvent timedEvent = new TimedEvent( + "someId", + Event.CASE_LISTING, + ZonedDateTime.now(), + "", + "", + 1234 + ); + + when(timedEventServiceApi.submitTimedEvent(authToken, s2sToken, timedEvent)).thenReturn(timedEvent); + + assertEquals(timedEvent, timedEventServiceScheduler.schedule(timedEvent)); + } + + @Test + void should_rethrow_exception_from_api() { + + TimedEvent timedEvent = new TimedEvent( + "someId", + Event.CASE_LISTING, + ZonedDateTime.now(), + "", + "", + 1234 + ); + + when(timedEventServiceApi.submitTimedEvent(authToken, s2sToken, timedEvent)).thenThrow(FeignException.class); + + assertThatThrownBy(() -> timedEventServiceScheduler.schedule(timedEvent)) + .isInstanceOf(AsylumCaseServiceResponseException.class) + .hasCauseInstanceOf(FeignException.class); + } + + @Test + void should_invoke_delete_api_successfully() { + // Given + doNothing().when(timedEventServiceApi).deleteTimedEvent(authToken, s2sToken, "1234567"); + + // When + boolean result = timedEventServiceScheduler.deleteSchedule("1234567"); + + // Then + verify(timedEventServiceApi).deleteTimedEvent(authToken, s2sToken, "1234567"); + assertThat(result).isTrue(); + } + + @Test + void should_invoke_delete_api_with_failure() { + // Given + doThrow(FeignException.class).when(timedEventServiceApi).deleteTimedEvent(authToken, s2sToken, "1234567"); + + // When + boolean result = timedEventServiceScheduler.deleteSchedule("1234567"); + + // Then + verify(timedEventServiceApi).deleteTimedEvent(authToken, s2sToken, "1234567"); + assertThat(result).isFalse(); + } + +} From 542cd5c76c4c047602289f56e4ee1ce8b73436bd Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 14:53:55 +0100 Subject: [PATCH 02/15] REVERT THIS testing timed event service with bails --- .../BailApplicationSubmittedConfirmation.java | 37 ++++++- ...lApplicationSubmittedConfirmationTest.java | 98 ++++++++++++++++--- 2 files changed, 118 insertions(+), 17 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index e2cfab297..9329b88dd 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -1,7 +1,9 @@ package uk.gov.hmcts.reform.bailcaseapi.domain.handlers.postsubmit; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import uk.gov.hmcts.reform.bailcaseapi.domain.DateProvider; import uk.gov.hmcts.reform.bailcaseapi.domain.UserDetailsHelper; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.BailCase; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.BailCaseFieldDefinition; @@ -12,8 +14,13 @@ import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.callback.Callback; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.callback.PostSubmitCallbackResponse; import uk.gov.hmcts.reform.bailcaseapi.domain.handlers.PostSubmitCallbackHandler; +import uk.gov.hmcts.reform.bailcaseapi.domain.service.Scheduler; import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.CcdCaseAssignment; import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.ProfessionalOrganisationRetriever; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; + +import java.time.ZoneId; +import java.time.ZonedDateTime; @Slf4j @Component @@ -23,15 +30,24 @@ public class BailApplicationSubmittedConfirmation implements PostSubmitCallbackH private final CcdCaseAssignment ccdCaseAssignment; private UserDetails userDetails; private UserDetailsHelper userDetailsHelper; + private final boolean timedEventServiceEnabled; + private final DateProvider dateProvider; + private final Scheduler scheduler; public BailApplicationSubmittedConfirmation(ProfessionalOrganisationRetriever professionalOrganisationRetriever, CcdCaseAssignment ccdCaseAssignment, UserDetails userDetails, - UserDetailsHelper userDetailsHelper) { + UserDetailsHelper userDetailsHelper, + @Value("${featureFlag.timedEventServiceEnabled}") boolean timedEventServiceEnabled, + DateProvider dateProvider, + Scheduler scheduler) { this.professionalOrganisationRetriever = professionalOrganisationRetriever; this.ccdCaseAssignment = ccdCaseAssignment; this.userDetails = userDetails; this.userDetailsHelper = userDetailsHelper; + this.timedEventServiceEnabled = timedEventServiceEnabled; + this.dateProvider = dateProvider; + this.scheduler = scheduler; } @Override @@ -75,7 +91,24 @@ public PostSubmitCallbackResponse handle(Callback callback) { ccdCaseAssignment.assignAccessToCase(callback); ccdCaseAssignment.revokeAccessToCase(callback, organisationIdentifier); } - + if (timedEventServiceEnabled) { + log.info("Triggering event to end application"); + int scheduleDelayInMinutes = 1; + ZonedDateTime scheduledDate = ZonedDateTime.of( + dateProvider.nowWithTime(), + ZoneId.systemDefault() + ).plusMinutes(scheduleDelayInMinutes); + scheduler.schedule( + new TimedEvent( + "", + Event.END_APPLICATION, + scheduledDate, + "IA", + "Asylum", + callback.getCaseDetails().getId() + ) + ); + } return postSubmitResponse; } } diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index 72b3de446..c2e3f5550 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -3,19 +3,23 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZonedDateTime; import java.util.Optional; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; +import uk.gov.hmcts.reform.bailcaseapi.domain.DateProvider; import uk.gov.hmcts.reform.bailcaseapi.domain.UserDetailsHelper; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.BailCase; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.BailCaseFieldDefinition; @@ -27,39 +31,60 @@ import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.callback.Callback; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.callback.PostSubmitCallbackResponse; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ref.OrganisationEntityResponse; +import uk.gov.hmcts.reform.bailcaseapi.domain.service.Scheduler; import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.CcdCaseAssignment; import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.ProfessionalOrganisationRetriever; +import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; @MockitoSettings(strictness = Strictness.LENIENT) public class BailApplicationSubmittedConfirmationTest { - @Mock private Callback callback; + @Mock + private Callback callback; - @Mock private CaseDetails caseDetails; + @Mock + private CaseDetails caseDetails; - @Mock private BailCase bailCase; + @Mock + private BailCase bailCase; - @Mock private ProfessionalOrganisationRetriever professionalOrganisationRetriever; + @Mock + private ProfessionalOrganisationRetriever professionalOrganisationRetriever; - @Mock private CcdCaseAssignment ccdCaseAssignment; + @Mock + private CcdCaseAssignment ccdCaseAssignment; - @Mock private OrganisationPolicy organisationPolicy; + @Mock + private OrganisationPolicy organisationPolicy; - @Mock private OrganisationEntityResponse organisationEntityResponse; + @Mock + private OrganisationEntityResponse organisationEntityResponse; - @Mock private UserDetails userDetails; + @Mock + private UserDetails userDetails; - @Mock private UserDetailsHelper userDetailsHelper; + @Mock + private UserDetailsHelper userDetailsHelper; + private boolean timedEventServiceEnabled; + @Mock + private DateProvider dateProvider; + @Mock + private Scheduler scheduler; private BailApplicationSubmittedConfirmation bailApplicationSubmittedConfirmation; @BeforeEach public void setUp() { bailApplicationSubmittedConfirmation = - new BailApplicationSubmittedConfirmation(professionalOrganisationRetriever, - ccdCaseAssignment, - userDetails, - userDetailsHelper); + new BailApplicationSubmittedConfirmation( + professionalOrganisationRetriever, + ccdCaseAssignment, + userDetails, + userDetailsHelper, + false, + dateProvider, + scheduler + ); when(callback.getEvent()).thenReturn(Event.SUBMIT_APPLICATION); } @@ -85,6 +110,7 @@ void should_set_header_body() { assertNotNull(response.getConfirmationHeader(), "Confirmation Header is null"); assertThat(response.getConfirmationHeader().get()).isEqualTo("# You have submitted this application"); + verify(scheduler, never()).schedule(any(TimedEvent.class)); } @Test @@ -162,4 +188,46 @@ void should_not_assign_and_revoke_access_to_case_when_user_is_not_LR() { verify(ccdCaseAssignment, never()).assignAccessToCase(callback); verify(ccdCaseAssignment, never()).revokeAccessToCase(any(), anyString()); } + + @Test + void testTest() { + bailApplicationSubmittedConfirmation = + new BailApplicationSubmittedConfirmation( + professionalOrganisationRetriever, + ccdCaseAssignment, + userDetails, + userDetailsHelper, + true, + dateProvider, + scheduler + ); + long caseId = 1234L; + String organisationIdentifier = "someOrgIdentifier"; + + when(callback.getCaseDetails()).thenReturn(caseDetails); + when(caseDetails.getCaseData()).thenReturn(bailCase); + when(callback.getCaseDetails().getId()).thenReturn(caseId); + when(userDetailsHelper.getLoggedInUserRoleLabel(any())).thenReturn(UserRoleLabel.LEGAL_REPRESENTATIVE); + when(bailCase.read(BailCaseFieldDefinition.LOCAL_AUTHORITY_POLICY, OrganisationPolicy.class)).thenReturn( + Optional.of(organisationPolicy)); + when(professionalOrganisationRetriever.retrieve()).thenReturn(organisationEntityResponse); + when(organisationEntityResponse.getOrganisationIdentifier()).thenReturn(organisationIdentifier); + LocalDateTime someTime = LocalDateTime.of(2024, 10, 10, 10, 10, 10); + when(dateProvider.nowWithTime()).thenReturn(someTime); + ZonedDateTime someTimeDelayed = ZonedDateTime.of( + someTime, + ZoneId.systemDefault() + ).plusMinutes(1); + bailApplicationSubmittedConfirmation.handle(callback); + verify(dateProvider).nowWithTime(); + TimedEvent timedEvent = new TimedEvent( + "", + Event.END_APPLICATION, + someTimeDelayed, + "IA", + "Asylum", + callback.getCaseDetails().getId() + ); + verify(scheduler).schedule(refEq(timedEvent)); + } } From 2d82429eb40679278d15c619c573923fb3d998bf Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 15:20:33 +0100 Subject: [PATCH 03/15] bumping charts --- charts/ia-bail-case-api/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/ia-bail-case-api/Chart.yaml b/charts/ia-bail-case-api/Chart.yaml index 056b819b9..dd59fd386 100644 --- a/charts/ia-bail-case-api/Chart.yaml +++ b/charts/ia-bail-case-api/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 description: A Helm chart for Bail Case API App name: ia-bail-case-api home: https://github.com/hmcts/ia-bail-case-api -version: 0.0.22 +version: 0.0.23 maintainers: - name: Immigration & Asylum Team email: ImmigrationandAsylum@HMCTS.NET From 5b5b62ebe3b9dee5e1b174ef20df3580f02fe0f9 Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 18:25:44 +0100 Subject: [PATCH 04/15] REVERT THIS testing timed event service with bails --- .../postsubmit/BailApplicationSubmittedConfirmation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index 9329b88dd..ae2990275 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -104,7 +104,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { Event.END_APPLICATION, scheduledDate, "IA", - "Asylum", + "Bail", callback.getCaseDetails().getId() ) ); From 017f3304599048bf50f622ad76558c149c7a464d Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 18:37:18 +0100 Subject: [PATCH 05/15] fix --- .../postsubmit/BailApplicationSubmittedConfirmation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index ae2990275..ec33fe8a9 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -70,7 +70,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { postSubmitResponse.setConfirmationBody( "### What happens next\n\n" - + "All parties will be notified that the application has been submitted." + + "All parties will be notified that the application has been submitted." ); postSubmitResponse.setConfirmationHeader("# You have submitted this application"); From a4543bb92069dcdc180a5da3dca27c5e53d3e6eb Mon Sep 17 00:00:00 2001 From: nilay Date: Wed, 11 Sep 2024 18:44:21 +0100 Subject: [PATCH 06/15] REVERT THIS testing timed event service with bails --- .../postsubmit/BailApplicationSubmittedConfirmationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index c2e3f5550..8484e2256 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -225,7 +225,7 @@ void testTest() { Event.END_APPLICATION, someTimeDelayed, "IA", - "Asylum", + "Bail", callback.getCaseDetails().getId() ); verify(scheduler).schedule(refEq(timedEvent)); From cbc94dcd85889fa4a4003252d5265c8d081bf660 Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Mon, 25 Nov 2024 15:47:17 +0000 Subject: [PATCH 07/15] trigger build --- charts/ia-bail-case-api/values.preview.template.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/charts/ia-bail-case-api/values.preview.template.yaml b/charts/ia-bail-case-api/values.preview.template.yaml index 78f0751cd..f895d8b05 100644 --- a/charts/ia-bail-case-api/values.preview.template.yaml +++ b/charts/ia-bail-case-api/values.preview.template.yaml @@ -17,3 +17,4 @@ java: LOCATION_REF_DATA_URL: "http://rd-location-ref-api-aat.service.core-compute-aat.internal" IA_TIMED_EVENT_SERVICE_URL: "http://ia-timed-event-service-aat.service.core-compute-aat.internal/" IA_TIMED_EVENT_SERVICE_ENABLED: "true" + From b206a72b83112b4b4a81bc9fb3c12724510318cb Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Wed, 27 Nov 2024 19:44:59 +0000 Subject: [PATCH 08/15] add endApplication event to system user --- src/main/resources/application.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index c1eddfde9..7d4f8bb6a 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -75,6 +75,7 @@ security: caseworker-ia-system: - "clearLegalRepresentativeDetails" - "caseListing" + - "endApplication" caseworker-caa: - "nocRequest" - "clearLegalRepresentativeDetails" From 459b9d5527a9c2b3fb387742d0640e22aea2fa25 Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Thu, 28 Nov 2024 10:18:49 +0000 Subject: [PATCH 09/15] update timed event service PR url --- charts/ia-bail-case-api/values.preview.template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/ia-bail-case-api/values.preview.template.yaml b/charts/ia-bail-case-api/values.preview.template.yaml index f895d8b05..d5ba9d1a0 100644 --- a/charts/ia-bail-case-api/values.preview.template.yaml +++ b/charts/ia-bail-case-api/values.preview.template.yaml @@ -15,6 +15,6 @@ java: IA_CASE_NOTIFICATIONS_API_URL: "http://ia-case-notifications-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal/" CASE_DOCUMENT_AM_URL: "http://ccd-case-document-am-api-{{ .Values.global.environment }}.service.core-compute-{{ .Values.global.environment }}.internal" LOCATION_REF_DATA_URL: "http://rd-location-ref-api-aat.service.core-compute-aat.internal" - IA_TIMED_EVENT_SERVICE_URL: "http://ia-timed-event-service-aat.service.core-compute-aat.internal/" + IA_TIMED_EVENT_SERVICE_URL: "https://ia-timed-event-service-pr-183.preview.platform.hmcts.net/" IA_TIMED_EVENT_SERVICE_ENABLED: "true" From 27186f887ee61d807a195303619021d41c793818 Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Thu, 28 Nov 2024 16:08:51 +0000 Subject: [PATCH 10/15] revoke access not working in preview --- .../postsubmit/BailApplicationSubmittedConfirmation.java | 2 +- .../postsubmit/BailApplicationSubmittedConfirmationTest.java | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index ec33fe8a9..714d60da0 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -89,7 +89,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { ); ccdCaseAssignment.assignAccessToCase(callback); - ccdCaseAssignment.revokeAccessToCase(callback, organisationIdentifier); + // ccdCaseAssignment.revokeAccessToCase(callback, organisationIdentifier); } if (timedEventServiceEnabled) { log.info("Triggering event to end application"); diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index 8484e2256..0dab7c5f0 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -15,6 +15,7 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoSettings; @@ -37,6 +38,7 @@ import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; @MockitoSettings(strictness = Strictness.LENIENT) +@Disabled public class BailApplicationSubmittedConfirmationTest { @Mock From 408d458b4774e0871f4efb5ede30686e06ddc039 Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Thu, 28 Nov 2024 16:32:09 +0000 Subject: [PATCH 11/15] remove assertion --- .../postsubmit/BailApplicationSubmittedConfirmationTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index 0dab7c5f0..17857394e 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -15,7 +15,6 @@ import java.util.Optional; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoSettings; @@ -38,7 +37,6 @@ import uk.gov.hmcts.reform.bailcaseapi.infrastructure.clients.model.TimedEvent; @MockitoSettings(strictness = Strictness.LENIENT) -@Disabled public class BailApplicationSubmittedConfirmationTest { @Mock @@ -171,7 +169,7 @@ void should_assign_and_revoke_access_to_case_when_user_is_Lr() { bailApplicationSubmittedConfirmation.handle(callback); verify(ccdCaseAssignment, times(1)).assignAccessToCase(callback); - verify(ccdCaseAssignment, times(1)).revokeAccessToCase(callback, organisationIdentifier); + // verify(ccdCaseAssignment, times(1)).revokeAccessToCase(callback, organisationIdentifier); } @Test From e6d14dc12e4f80b8c1e49579bfda3b96823d039e Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Fri, 29 Nov 2024 17:34:28 +0000 Subject: [PATCH 12/15] add event to test timed event service --- .../hmcts/reform/bailcaseapi/domain/entities/ccd/Event.java | 1 + .../postsubmit/BailApplicationSubmittedConfirmation.java | 4 ++-- src/main/resources/application.yaml | 2 ++ .../reform/bailcaseapi/domain/entities/ccd/EventTest.java | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/Event.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/Event.java index 13e547076..c67e23a94 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/Event.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/Event.java @@ -38,6 +38,7 @@ public enum Event { UPLOAD_DOCUMENTS("uploadDocuments"), UPLOAD_SIGNED_DECISION_NOTICE("uploadSignedDecisionNotice"), VIEW_PREVIOUS_APPLICATIONS("viewPreviousApplications"), + TEST_TIMED_EVENT_SCHEDULE("testTimedEventSchedule"), @JsonEnumDefaultValue UNKNOWN("unknown"); diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index 714d60da0..aa4a44ed0 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -92,7 +92,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { // ccdCaseAssignment.revokeAccessToCase(callback, organisationIdentifier); } if (timedEventServiceEnabled) { - log.info("Triggering event to end application"); + log.info("Triggering event to test timed event service schedule feature"); int scheduleDelayInMinutes = 1; ZonedDateTime scheduledDate = ZonedDateTime.of( dateProvider.nowWithTime(), @@ -101,7 +101,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { scheduler.schedule( new TimedEvent( "", - Event.END_APPLICATION, + Event.TEST_TIMED_EVENT_SCHEDULE, scheduledDate, "IA", "Bail", diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 7d4f8bb6a..35ad1d458 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -76,6 +76,7 @@ security: - "clearLegalRepresentativeDetails" - "caseListing" - "endApplication" + - "testTimedEventSchedule" caseworker-caa: - "nocRequest" - "clearLegalRepresentativeDetails" @@ -119,6 +120,7 @@ security: - "imaStatus" - "forceCaseToHearing" - "changeTribunalCentre" + - "testTimedEventSchedule" caseworker-ia-homeofficebail: - "startApplication" - "uploadBailSummary" diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java index aa1226460..c36ef1a54 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java @@ -38,11 +38,12 @@ void has_correct_values() { assertEquals("caseListing", Event.CASE_LISTING.toString()); assertEquals("imaStatus", Event.IMA_STATUS.toString()); assertEquals("changeTribunalCentre", Event.CHANGE_TRIBUNAL_CENTRE.toString()); + assertEquals("testTimedEventSchedule", Event.TEST_TIMED_EVENT_SCHEDULE.toString()); assertEquals("unknown", Event.UNKNOWN.toString()); } @Test void fail_if_changes_needed_after_modifying_class() { - assertEquals(34, Event.values().length); + assertEquals(35, Event.values().length); } } From 332a6c89e05e4d1c17b9c81a8d571eedfc39b45d Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Fri, 29 Nov 2024 17:44:12 +0000 Subject: [PATCH 13/15] fix test --- .../postsubmit/BailApplicationSubmittedConfirmationTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index 17857394e..9ed4e2a00 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -190,7 +190,7 @@ void should_not_assign_and_revoke_access_to_case_when_user_is_not_LR() { } @Test - void testTest() { + void testTestTimedEventScheduleEvent() { bailApplicationSubmittedConfirmation = new BailApplicationSubmittedConfirmation( professionalOrganisationRetriever, @@ -222,7 +222,7 @@ void testTest() { verify(dateProvider).nowWithTime(); TimedEvent timedEvent = new TimedEvent( "", - Event.END_APPLICATION, + Event.TEST_TIMED_EVENT_SCHEDULE, someTimeDelayed, "IA", "Bail", From 598c5da833624388787e2b1d33c720d6e1c7562f Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Fri, 29 Nov 2024 18:54:56 +0000 Subject: [PATCH 14/15] cleanup --- .../postsubmit/BailApplicationSubmittedConfirmation.java | 1 + src/main/resources/application.yaml | 1 - .../postsubmit/BailApplicationSubmittedConfirmationTest.java | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java index aa4a44ed0..9961ef05a 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmation.java @@ -89,6 +89,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { ); ccdCaseAssignment.assignAccessToCase(callback); + // TODO: uncomment revokeAccessToCase // ccdCaseAssignment.revokeAccessToCase(callback, organisationIdentifier); } if (timedEventServiceEnabled) { diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 35ad1d458..96e38f59d 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -75,7 +75,6 @@ security: caseworker-ia-system: - "clearLegalRepresentativeDetails" - "caseListing" - - "endApplication" - "testTimedEventSchedule" caseworker-caa: - "nocRequest" diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java index 9ed4e2a00..291c9194f 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSubmittedConfirmationTest.java @@ -169,7 +169,7 @@ void should_assign_and_revoke_access_to_case_when_user_is_Lr() { bailApplicationSubmittedConfirmation.handle(callback); verify(ccdCaseAssignment, times(1)).assignAccessToCase(callback); - // verify(ccdCaseAssignment, times(1)).revokeAccessToCase(callback, organisationIdentifier); + // TODO: verify(ccdCaseAssignment, times(1)).revokeAccessToCase(callback, organisationIdentifier); } @Test From 0880c5b113700ce430bea2a12de06f031aee44f3 Mon Sep 17 00:00:00 2001 From: Aliveni Choppa Date: Mon, 9 Dec 2024 18:10:14 +0000 Subject: [PATCH 15/15] fix checkstyle errors --- .../handlers/postsubmit/BailApplicationSavedConfirmation.java | 2 +- .../domain/handlers/presubmit/DecisionTypeAppender.java | 2 -- .../hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSavedConfirmation.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSavedConfirmation.java index 64cd7c282..bc4847e5d 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSavedConfirmation.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/postsubmit/BailApplicationSavedConfirmation.java @@ -41,7 +41,7 @@ public PostSubmitCallbackResponse handle(Callback callback) { + "the 'Next step' dropdown list from your case details page.\n\n" + "#### Not ready to submit your application yet?\n" + "You can return to the case details page to make changes from the ‘Next step’ dropdown list." - ); + ); return postSubmitResponse; } diff --git a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/presubmit/DecisionTypeAppender.java b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/presubmit/DecisionTypeAppender.java index 9486908e8..cbe2ea8f2 100644 --- a/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/presubmit/DecisionTypeAppender.java +++ b/src/main/java/uk/gov/hmcts/reform/bailcaseapi/domain/handlers/presubmit/DecisionTypeAppender.java @@ -10,8 +10,6 @@ import uk.gov.hmcts.reform.bailcaseapi.domain.BailCaseUtils; import uk.gov.hmcts.reform.bailcaseapi.domain.DateProvider; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.BailCase; -import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ListingEvent; -import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ListingHearingCentre; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.CaseDetails; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.DecisionType; import uk.gov.hmcts.reform.bailcaseapi.domain.entities.ccd.Event; diff --git a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java index 18cf6e43c..5e74dc821 100644 --- a/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java +++ b/src/test/java/uk/gov/hmcts/reform/bailcaseapi/domain/entities/ccd/EventTest.java @@ -45,6 +45,6 @@ void has_correct_values() { @Test void fail_if_changes_needed_after_modifying_class() { - assertEquals(35, Event.values().length); + assertEquals(36, Event.values().length); } }