diff --git a/src/main/resources/camunda/general_application_judge_makes_order_after_hearing.bpmn b/src/main/resources/camunda/general_application_judge_makes_order_after_hearing.bpmn index 5ccc55d1f..aff00b1d5 100644 --- a/src/main/resources/camunda/general_application_judge_makes_order_after_hearing.bpmn +++ b/src/main/resources/camunda/general_application_judge_makes_order_after_hearing.bpmn @@ -1,5 +1,5 @@ - + @@ -20,6 +20,20 @@ Flow_1u4hj3q Flow_1qchrvw + + + + + + + + + + + + + ${(!empty flowFlags.LIP_APPLICANT && flowFlags.LIP_APPLICANT)} + @@ -29,14 +43,18 @@ Flow_0d4lf2a Flow_1yg2hgc - - - - - - - - + + ${(!empty flowFlags.LIP_RESPONDENT && flowFlags.LIP_RESPONDENT)} + + + + + GENERATE_JUDGES_FORM + + + Flow_1qchrvw + Flow_0d4lf2a + Flow_1830oky @@ -44,26 +62,52 @@ - Flow_1yg2hgc + Flow_1bgft9o + Flow_0t75ukk Flow_1830oky - - + - GENERATE_JUDGES_FORM + CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE - Flow_1qchrvw - Flow_0d4lf2a + Flow_1u69kcw + Flow_1bgft9o + + + Flow_1yzn09e + Flow_03vqbjk + Flow_1u69kcw + Flow_0t75ukk + + + + + CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE + + + Flow_041g7uu + Flow_1yzn09e + + Flow_1yg2hgc + Flow_041g7uu + Flow_03vqbjk + + + ${(empty flowFlags.LIP_APPLICANT || !flowFlags.LIP_APPLICANT)} + + + ${(empty flowFlags.LIP_RESPONDENT || !flowFlags.LIP_RESPONDENT)} + - + @@ -79,17 +123,37 @@ - + + + + - + - + - - + + + + + + + + + + + + + + + + + + + @@ -107,19 +171,60 @@ - + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/test/java/uk/gov/hmcts/reform/civil/bpmn/GeneralApplicationJudgeMakesOrderAfterHearingTest.java b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/GeneralApplicationJudgeMakesOrderAfterHearingTest.java index f5223dc7a..2d600ecdf 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/bpmn/GeneralApplicationJudgeMakesOrderAfterHearingTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/GeneralApplicationJudgeMakesOrderAfterHearingTest.java @@ -6,6 +6,8 @@ import org.camunda.bpm.engine.variable.Variables; import org.junit.jupiter.api.BeforeEach; 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; @@ -28,6 +30,18 @@ public class GeneralApplicationJudgeMakesOrderAfterHearingTest extends BpmnBaseG private static final String ADD_PDF_ID = "LinkDocumentToParentCase"; private static final String LIP_APPLICANT = "LIP_APPLICANT"; + private static final String LIP_RESPONDENT = "LIP_RESPONDENT"; + + private static final String CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE_EVENT = "CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE"; + private static final String CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE_ACTIVITY = "applicantNotificationForOrderMadeByJudge"; + + private static final String CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE_EVENT = "CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE"; + private static final String CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE_ACTIVITY = "respondentNotificationForOrderMadeByJudge"; + + private static final String UPDATE_CLAIMANT_GA_TASK_LIST_GA_COMPLETE_EVENT = "UPDATE_CLAIMANT_TASK_LIST_GA_COMPLETE"; + private static final String GENERAL_APPLICATION_CLAIMANT_TASK_LIST_ACTIVITY_ID = "GeneralApplicationClaimantTaskList"; + private static final String UPDATE_RESPONDENT_GA_TASK_LIST_GA_COMPLETE_EVENT = "UPDATE_RESPONDENT_TASK_LIST_GA_COMPLETE"; + private static final String GENERAL_APPLICATION_RESPONDENT_TASK_LIST_ACTIVITY_ID = "GeneralApplicationRespondentTaskList"; public GeneralApplicationJudgeMakesOrderAfterHearingTest() { super("general_application_judge_makes_order_after_hearing.bpmn", "GA_GENERATE_DIRECTIONS_ORDER_ID"); @@ -52,8 +66,9 @@ void setup() { processInstance = engine.getRuntimeService().startProcessInstanceByKey(processId); } - @Test - void shouldSuccessfullyCompleteCreatePDFDocument_whenCalled() { + @ParameterizedTest + @CsvSource({"false,false", "true,false", "true,true", "false,true"}) + void shouldSuccessfullyCompleteCreatePDFDocument_whenCalled(boolean isLipApplicant, boolean isLipRespondent) { //assert process has started assertFalse(processInstance.isEnded()); @@ -62,7 +77,8 @@ void shouldSuccessfullyCompleteCreatePDFDocument_whenCalled() { VariableMap variables = Variables.createVariables(); variables.put("flowFlags", Map.of( - LIP_APPLICANT, false)); + LIP_APPLICANT, isLipApplicant, + LIP_RESPONDENT, isLipRespondent)); //complete the start business process ExternalTask startBusiness = assertNextExternalTask(START_BUSINESS_TOPIC); @@ -94,10 +110,52 @@ void shouldSuccessfullyCompleteCreatePDFDocument_whenCalled() { variables ); + if (isLipApplicant) { + ExternalTask updateCuiClaimantDashboard = assertNextExternalTask(MAKE_DECISION_CASE_EVENT); + assertCompleteExternalTask( + updateCuiClaimantDashboard, + MAKE_DECISION_CASE_EVENT, + CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE_EVENT, + CREATE_APPLICANT_DASHBOARD_NOTIFICATION_ORDER_MADE_ACTIVITY, + variables + ); + } + + if (isLipRespondent) { + ExternalTask updateCuiDefendantDashboard = assertNextExternalTask(MAKE_DECISION_CASE_EVENT); + assertCompleteExternalTask( + updateCuiDefendantDashboard, + MAKE_DECISION_CASE_EVENT, + CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE_EVENT, + CREATE_RESPONDENT_DASHBOARD_NOTIFICATION_ORDER_MADE_ACTIVITY, + variables + ); + } + //end business process ExternalTask endBusinessProcess = assertNextExternalTask(END_BUSINESS_PROCESS); completeBusinessProcess(endBusinessProcess); + if (isLipApplicant || isLipRespondent) { + ExternalTask claimantTaskListUpdate = assertNextExternalTask(APPLICATION_EVENT_GASPEC); + assertCompleteExternalTask( + claimantTaskListUpdate, + APPLICATION_EVENT_GASPEC, + UPDATE_CLAIMANT_GA_TASK_LIST_GA_COMPLETE_EVENT, + GENERAL_APPLICATION_CLAIMANT_TASK_LIST_ACTIVITY_ID, + variables + ); + + ExternalTask respondentTaskListUpdate = assertNextExternalTask(APPLICATION_EVENT_GASPEC); + assertCompleteExternalTask( + respondentTaskListUpdate, + APPLICATION_EVENT_GASPEC, + UPDATE_RESPONDENT_GA_TASK_LIST_GA_COMPLETE_EVENT, + GENERAL_APPLICATION_RESPONDENT_TASK_LIST_ACTIVITY_ID, + variables + ); + } + assertNoExternalTasksLeft(); }