From cdea8ac3b64d6bac023c21f401c0bdf9ad09b2f5 Mon Sep 17 00:00:00 2001 From: kalachandrasekar1 <114995593+kalachandrasekar1@users.noreply.github.com> Date: Tue, 21 Jan 2025 08:53:32 +0000 Subject: [PATCH] CIV-15753 Judgment by Admission - modify Submission screen (#1182) * CIV-15753 changes * CIV-15753 checkstyle fix * CIV-15753 testcase updated * CIV-15753 review comment fixed --------- Co-authored-by: Azam <106387766+Azam-Hmcts@users.noreply.github.com> --- .../camunda/claimant_response_spec.bpmn | 92 +++++++++------ .../civil/bpmn/ClaimantResponseSpecTest.java | 111 ++++++++++++++++++ 2 files changed, 164 insertions(+), 39 deletions(-) diff --git a/src/main/resources/camunda/claimant_response_spec.bpmn b/src/main/resources/camunda/claimant_response_spec.bpmn index 9bc38d734..d9c49b954 100644 --- a/src/main/resources/camunda/claimant_response_spec.bpmn +++ b/src/main/resources/camunda/claimant_response_spec.bpmn @@ -63,9 +63,10 @@ Flow_ADMIT_PART_SETTLE_CLAIM Flow_Flow_PAY_IMMEDIATELY Flow_0f1j5lb + Flow_0fq9s3w - - ${flowState == "MAIN.FULL_ADMIT_NOT_PROCEED" || flowState == "MAIN.PART_ADMIT_NOT_PROCEED" || flowState == "MAIN.PART_ADMIT_PAY_IMMEDIATELY"} + + ${flowState == "MAIN.FULL_ADMIT_NOT_PROCEED" || flowState == "MAIN.PART_ADMIT_NOT_PROCEED" || (flowState == "MAIN.PART_ADMIT_PAY_IMMEDIATELY" && (empty flowFlags.JO_ONLINE_LIVE_ENABLED || !flowFlags.JO_ONLINE_LIVE_ENABLED))} ${flowState == "MAIN.FULL_ADMIT_PROCEED" || flowState == "MAIN.PART_ADMIT_PROCEED"} @@ -494,6 +495,7 @@ Flow_0unqxdq Flow_1dx6rl0 Flow_JO_ONLINE_ENABLED + Flow_0fq9s3w Flow_189q5fx @@ -557,6 +559,9 @@ ${!empty flowFlags.GENERAL_APPLICATION_ENABLED && flowFlags.GENERAL_APPLICATION_ENABLED} + + ${!empty flowFlags.JO_ONLINE_LIVE_ENABLED && flowFlags.JO_ONLINE_LIVE_ENABLED && flowState == "MAIN.PART_ADMIT_PAY_IMMEDIATELY"} + 2 Respondent representatives @@ -592,6 +597,9 @@ + + + @@ -723,6 +731,13 @@ + + + + + + + @@ -735,6 +750,13 @@ + + + + + + + @@ -757,23 +779,6 @@ - - - - - - - - - - - - - - - - - @@ -801,7 +806,7 @@ - + @@ -1181,6 +1186,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1205,25 +1238,6 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ClaimantResponseSpecTest.java b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ClaimantResponseSpecTest.java index 718c5b4b3..ee8435e29 100644 --- a/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ClaimantResponseSpecTest.java +++ b/src/test/java/uk/gov/hmcts/reform/civil/bpmn/ClaimantResponseSpecTest.java @@ -39,6 +39,10 @@ class ClaimantResponseSpecTest extends BpmnBaseTest { "ClaimantAgreedSettledPartAdmitNotifyLip"; private static final String CREATE_DEFENDANT_DASHBOARD_NOTIFICATION_FOR_CLAIMANT_RESPONSE = "CREATE_DEFENDANT_DASHBOARD_NOTIFICATION_FOR_CLAIMANT_RESPONSE"; private static final String CREATE_DEFENDANT_DASHBOARD_NOTIFICATION_FOR_CLAIMANT_RESPONSE_EVENT_ID = "GenerateDashboardNotificationRespondent1"; + private static final String NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED = "NOTIFY_RESPONDENT_SOLICITOR1_FOR_CLAIMANT_CONFIRMS_NOT_TO_PROCEED"; + private static final String NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED_EVENT_ID = "ClaimantConfirmsNotToProceedNotifyRespondentSolicitor1"; + private static final String NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED_CC = "NOTIFY_RESPONDENT_SOLICITOR1_FOR_CLAIMANT_CONFIRMS_NOT_TO_PROCEED_CC"; + private static final String NOTIFY_RESPONDENT_SOLICITOR1_CLAIMANT_CONFIRMS_NOT_TO_PROCEED_CC_EVENT_ID = "ClaimantConfirmsNotToProceedNotifyApplicantSolicitor1CC"; public ClaimantResponseSpecTest() { super("claimant_response_spec.bpmn", "CLAIMANT_RESPONSE_PROCESS_ID_SPEC"); @@ -624,6 +628,113 @@ void shouldSuccessfullyCompleteClaimantResponse_WhenApplicantToSettle() { assertNoExternalTasksLeft(); } + @Test + void shouldCompletePartAdmitPayImmediately_WhenApplicantConfirmsNotToProceed_JoFlagDisabled() { + //assert process has started + assertFalse(processInstance.isEnded()); + + //assert message start event + assertThat(getProcessDefinitionByMessage("CLAIMANT_RESPONSE_SPEC").getKey()) + .isEqualTo("CLAIMANT_RESPONSE_PROCESS_ID_SPEC"); + + VariableMap variables = Variables.createVariables(); + variables.putValue("flowState", "MAIN.PART_ADMIT_PAY_IMMEDIATELY"); + variables.putValue("flowFlags", Map.of( + ONE_RESPONDENT_REPRESENTATIVE, true, + DASHBOARD_SERVICE_ENABLED, false, + JO_ONLINE_LIVE_ENABLED, false + )); + + //complete the start business process + ExternalTask startBusiness = assertNextExternalTask(START_BUSINESS_TOPIC); + assertCompleteExternalTask( + startBusiness, + START_BUSINESS_TOPIC, + START_BUSINESS_EVENT, + START_BUSINESS_ACTIVITY, + variables + ); + + //complete the Robotics notification + ExternalTask proccedOffline = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + proccedOffline, + PROCESS_CASE_EVENT, + PROCEED_OFFLINE_EVENT, + PROCEED_OFFLINE_FOR_RESPONSE_TO_DEFENCE_ACTIVITY_ID, + variables + ); + //complete the Respondent1 notification + ExternalTask notifyRespondentSolicitor1 = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + notifyRespondentSolicitor1, + PROCESS_CASE_EVENT, + NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED, + NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED_EVENT_ID, + variables + ); + //complete the Applicant1 notification + ExternalTask notifyApplicantSolicitor1 = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + notifyApplicantSolicitor1, + PROCESS_CASE_EVENT, + NOTIFY_RESPONDENT_SOLICITOR1_CONFIRMS_NOT_TO_PROCEED_CC, + NOTIFY_RESPONDENT_SOLICITOR1_CLAIMANT_CONFIRMS_NOT_TO_PROCEED_CC_EVENT_ID, + variables + ); + + //complete the Robotics notification + ExternalTask moveCaseToOffline = assertNextExternalTask(PROCESS_CASE_EVENT); + assertCompleteExternalTask( + moveCaseToOffline, + PROCESS_CASE_EVENT, + NOTIFY_RPA_ON_CASE_HANDED_OFFLINE, + NOTIFY_RPA_ON_CASE_HANDED_OFFLINE_ACTIVITY_ID, + variables + ); + + //end business process + ExternalTask endBusinessProcess = assertNextExternalTask(END_BUSINESS_PROCESS); + completeBusinessProcess(endBusinessProcess); + + assertNoExternalTasksLeft(); + } + + @Test + void shouldSuccessfullyCompleteWhenPartPayImmediately_JoFlagEnabled() { + //assert process has started + assertFalse(processInstance.isEnded()); + + //assert message start event + assertThat(getProcessDefinitionByMessage("CLAIMANT_RESPONSE_SPEC").getKey()) + .isEqualTo("CLAIMANT_RESPONSE_PROCESS_ID_SPEC"); + + VariableMap variables = Variables.createVariables(); + variables.putValue("flowState", "MAIN.PART_ADMIT_PAY_IMMEDIATELY"); + variables.putValue("flowFlags", Map.of( + DASHBOARD_SERVICE_ENABLED, true, + JO_ONLINE_LIVE_ENABLED, true + )); + + //complete the start business process + ExternalTask startBusiness = assertNextExternalTask(START_BUSINESS_TOPIC); + assertCompleteExternalTask( + startBusiness, + START_BUSINESS_TOPIC, + START_BUSINESS_EVENT, + START_BUSINESS_ACTIVITY, + variables + ); + + createDefendantDashboardNotification(); + + //end business process + ExternalTask endBusinessProcess = assertNextExternalTask(END_BUSINESS_PROCESS); + completeBusinessProcess(endBusinessProcess); + + assertNoExternalTasksLeft(); + } + private void createDefendantDashboardNotification() { ExternalTask notificationTask = assertNextExternalTask(PROCESS_CASE_EVENT); assertCompleteExternalTask(