From c11a826df4a238609c7dae671e4f852fd0b3c079 Mon Sep 17 00:00:00 2001 From: hmcts-version1-ignacio <107860328+hmcts-version1-ignacio@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:56:50 +0100 Subject: [PATCH] CIV-14295 Claimant LR Email notification: please resubmit discontinuance (#1040) * CIV-14295 Add new Camunda diagram * CIV-14295 Add Camunda and tests * CIV-14295 Add Camunda and tests * CIV-14295 Update Camunda diagram * CIV-14295 Update Camunda diagram * CIV-14295 Update Camunda diagram --- .../validate_discontinue_claim_claimant.bpmn | 162 ++++++++++++++++++ .../ValidateDiscontinueClaimClaimantTest.java | 100 +++++++++++ 2 files changed, 262 insertions(+) create mode 100644 src/main/resources/camunda/validate_discontinue_claim_claimant.bpmn create mode 100644 src/test/java/uk/gov/hmcts/reform/civil/bpmn/ValidateDiscontinueClaimClaimantTest.java diff --git a/src/main/resources/camunda/validate_discontinue_claim_claimant.bpmn b/src/main/resources/camunda/validate_discontinue_claim_claimant.bpmn new file mode 100644 index 000000000..b03e9f700 --- /dev/null +++ b/src/main/resources/camunda/validate_discontinue_claim_claimant.bpmn @@ -0,0 +1,162 @@ + + + + + Flow_1if0h68 + + + + Flow_1hce35l + + + + + + + Flow_0gitrv4 + Flow_1n9ug08 + Flow_1hce35l + + + + + + + Flow_1if0h68 + Flow_1qffyiy + + + Flow_0h072ea + + + Flow_0h072ea + + + + + + + Flow_0evp3v5 + Flow_15io19y + Flow_1n9ug08 + + + ${!discontinuanceValidationSuccess} + + + + + NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT + + + Flow_15io19y + Flow_0gitrv4 + + + + ${discontinuanceValidationSuccess} + + + + + UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE + + + Flow_1qffyiy + Flow_0evp3v5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ValidateDiscontinueClaimClaimantTest.java b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ValidateDiscontinueClaimClaimantTest.java new file mode 100644 index 000000000..bddab7d25 --- /dev/null +++ b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ValidateDiscontinueClaimClaimantTest.java @@ -0,0 +1,100 @@ +package uk.gov.hmcts.reform.civil.bpmn; + +import org.camunda.bpm.engine.externaltask.ExternalTask; +import org.camunda.bpm.engine.variable.VariableMap; +import org.camunda.bpm.engine.variable.Variables; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertFalse; + +public class ValidateDiscontinueClaimClaimantTest extends BpmnBaseTest { + + public static final String MESSAGE_NAME = "VALIDATE_DISCONTINUE_CLAIM_CLAIMANT"; + public static final String PROCESS_ID = "VALIDATE_DISCONTINUE_CLAIM_CLAIMANT"; + + //CCD CASE EVENTs + public static final String NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT + = "NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT"; + public static final String UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE + = "UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE"; + + //ACTIVITY IDs + public static final String NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT_ACTIVITY_ID + = "NotifyValidationFailureClaimant"; + public static final String UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE_ACTIVITY_ID + = "UpdateVisibilityNoticeOfDiscontinuance"; + + public ValidateDiscontinueClaimClaimantTest() { + super("validate_discontinue_claim_claimant.bpmn", PROCESS_ID); + } + + @ParameterizedTest + @CsvSource({"true", "false"}) + void shouldSuccessfullyComplete(boolean discontinuanceValidationSuccess) { + + //assert process has started + assertFalse(processInstance.isEnded()); + + //assert message start event + assertThat(getProcessDefinitionByMessage(MESSAGE_NAME).getKey()).isEqualTo(PROCESS_ID); + + VariableMap variables = Variables.createVariables(); + variables.put("discontinuanceValidationSuccess", discontinuanceValidationSuccess); + + //complete the start business process + ExternalTask startBusiness = assertNextExternalTask(START_BUSINESS_TOPIC); + assertCompleteExternalTask( + startBusiness, + START_BUSINESS_TOPIC, + START_BUSINESS_EVENT, + START_BUSINESS_ACTIVITY, + variables + ); + + //complete update visibility notice of discontinuance + ExternalTask updateVisibilityTask = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + updateVisibilityTask, + PROCESS_CASE_EVENT, + UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE, + UPDATE_VISIBILITY_NOTICE_OF_DISCONTINUANCE_ACTIVITY_ID, + variables + ); + + if (!discontinuanceValidationSuccess) { + //complete send email notification to claimant + ExternalTask notificationTask = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + notificationTask, + PROCESS_CASE_EVENT, + NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT, + NOTIFY_VALIDATION_DICONTINUANCE_FAILURE_CLAIMANT_ACTIVITY_ID, + variables + ); + } + + ExternalTask endBusinessProcess = assertNextExternalTask(END_BUSINESS_PROCESS); + completeBusinessProcess(endBusinessProcess); + + assertNoExternalTasksLeft(); + + } + + @Test + void shouldAbort_whenStartBusinessProcessThrowsAnError() { + //assert process has started + assertFalse(processInstance.isEnded()); + + //assert message start event + assertThat(getProcessDefinitionByMessage(MESSAGE_NAME).getKey()).isEqualTo(PROCESS_ID); + + //fail the start business process + ExternalTask startBusiness = assertNextExternalTask(START_BUSINESS_TOPIC); + assertFailExternalTask(startBusiness, START_BUSINESS_TOPIC, START_BUSINESS_EVENT, START_BUSINESS_ACTIVITY); + + assertNoExternalTasksLeft(); + } +}