From 22bacaf5001fab7a4eb7ee47d5429037719155d0 Mon Sep 17 00:00:00 2001 From: Viktoriia LYMAREVA Date: Wed, 21 Oct 2020 11:14:37 +0200 Subject: [PATCH] [FEAT] Detect all Conditional events (#790) --- docs/bpmn-support.adoc | 24 +++ src/component/mxgraph/shape/event-shapes.ts | 3 + .../bpmn/internal/shape/ShapeBpmnEventKind.ts | 1 + ...-ts-no-visual-regression-events-1-snap.png | Bin 41647 -> 46849 bytes test/e2e/mxGraph.model.test.ts | 74 ++++++++- .../bpmn/model-badly-attached-elements.bpmn | 6 + .../bpmn/model-complete-semantic.bpmn | 153 +++++++++++++++--- .../parser/json/BpmnJsonParser.event.test.ts | 2 +- 8 files changed, 239 insertions(+), 24 deletions(-) diff --git a/docs/bpmn-support.adoc b/docs/bpmn-support.adoc index a3b95a1645..d6fc6fdb9d 100644 --- a/docs/bpmn-support.adoc +++ b/docs/bpmn-support.adoc @@ -168,6 +168,10 @@ The event definition can be defined on the event or on the definitions. |Signal Start Event |icon:check-circle-o[] |The stroke & icon width may be adjusted + +|Conditional Start Event +| +| |=== @@ -197,6 +201,10 @@ The event definition can be defined on the event or on the definitions. |Compensation Interrupting Start Event |icon:check-circle-o[] |The stroke & icon width may be adjusted + +|Conditional Interrupting Start Event +| +| |=== @@ -218,6 +226,10 @@ The event definition can be defined on the event or on the definitions. |Signal Non-interrupting Start Event |icon:check-circle-o[] |The stroke & icon width may be adjusted + +|Conditional Non-interrupting Start Event +| +| |=== @@ -243,6 +255,10 @@ The event definition can be defined on the event or on the definitions. |Link Intermediate Catch Event |icon:check-circle-o[] |The stroke & icon width may be adjusted + +|Conditional Intermediate Catch Event +| +| |=== @@ -305,6 +321,10 @@ The event definition can be defined on the event or on the definitions. |Cancel Interrupting Boundary Event | | + +|Conditional Interrupting Boundary Event +| +| |=== @@ -326,6 +346,10 @@ The event definition can be defined on the event or on the definitions. |Signal Non-interrupting Boundary Event |icon:check-circle-o[] |The stroke & icon width may be adjusted + +|Conditional Non-interrupting Boundary Event +| +| |=== diff --git a/src/component/mxgraph/shape/event-shapes.ts b/src/component/mxgraph/shape/event-shapes.ts index 2bf6febd40..65537537c9 100644 --- a/src/component/mxgraph/shape/event-shapes.ts +++ b/src/component/mxgraph/shape/event-shapes.ts @@ -77,6 +77,9 @@ abstract class EventShape extends mxEllipse { if (eventKind == ShapeBpmnEventKind.CANCEL) { c.setFillColor('deeppink'); c.setFillAlpha(0.3); + } else if (eventKind == ShapeBpmnEventKind.CONDITIONAL) { + c.setFillColor('chartreuse'); + c.setFillAlpha(0.3); } } diff --git a/src/model/bpmn/internal/shape/ShapeBpmnEventKind.ts b/src/model/bpmn/internal/shape/ShapeBpmnEventKind.ts index 73c59418a2..bb7c175155 100644 --- a/src/model/bpmn/internal/shape/ShapeBpmnEventKind.ts +++ b/src/model/bpmn/internal/shape/ShapeBpmnEventKind.ts @@ -55,4 +55,5 @@ export const supportedBpmnEventKinds = [ ShapeBpmnEventKind.ERROR, ShapeBpmnEventKind.COMPENSATION, ShapeBpmnEventKind.CANCEL, + ShapeBpmnEventKind.CONDITIONAL, ]; diff --git a/test/e2e/__image_snapshots__/bpmn-rendering-test-ts-no-visual-regression-events-1-snap.png b/test/e2e/__image_snapshots__/bpmn-rendering-test-ts-no-visual-regression-events-1-snap.png index 3f1f0c4e749a67d2f5ca72f73bd405fc5c84f469..8942796c5aeb249c44419223461d2aedb969bdb9 100644 GIT binary patch delta 28480 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 Qhdtjw-$bwIgyW6>0s8CcuK)l5 delta 23237 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 Xw32cm>8V2oJcd4Xb$7YteE95NX@;j^ diff --git a/test/e2e/mxGraph.model.test.ts b/test/e2e/mxGraph.model.test.ts index ddcdcc34a4..95c4ec61d9 100644 --- a/test/e2e/mxGraph.model.test.ts +++ b/test/e2e/mxGraph.model.test.ts @@ -85,6 +85,16 @@ describe('mxGraph model', () => { label: 'Signal Start Event On Top', parentId: 'participant_1_id', }); + expect('start_event_conditional_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Conditional Start Event', + parentId: 'participant_1_id', + }); + expect('start_event_conditional_on_top_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Conditional Start Event On Top', + parentId: 'participant_1_id', + }); // end event expect('end_event_terminate_id').toBeEndEvent({ @@ -232,12 +242,12 @@ describe('mxGraph model', () => { }); expect('intermediate_catch_event_timer_id').toBeIntermediateCatchEvent({ eventKind: ShapeBpmnEventKind.TIMER, - label: 'Timer Intermediate Catch Event', + label: 'Catch Timer Intermediate Event', parentId: 'participant_1_id', }); expect('intermediate_catch_event_timer_on_top_id').toBeIntermediateCatchEvent({ eventKind: ShapeBpmnEventKind.TIMER, - label: 'Timer Intermediate Catch Event On Top', + label: 'Catch Timer Intermediate Event On Top', parentId: 'participant_1_id', }); expect('intermediate_catch_event_signal_id').toBeIntermediateCatchEvent({ @@ -260,6 +270,16 @@ describe('mxGraph model', () => { label: 'Catch Link Intermediate Event On Top', parentId: 'participant_1_id', }); + expect('intermediate_catch_event_conditional_id').toBeIntermediateCatchEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Catch Conditional Intermediate Event', + parentId: 'participant_1_id', + }); + expect('intermediate_catch_event_conditional_on_top_id').toBeIntermediateCatchEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Catch Conditional Intermediate Event On Top', + parentId: 'participant_1_id', + }); // boundary event: interrupting expect('boundary_event_interrupting_message_id').toBeBoundaryEvent({ @@ -334,6 +354,18 @@ describe('mxGraph model', () => { label: 'Interrupting Cancel Boundary Intermediate Event On Top', parentId: 'receive_task_non_instantiating_id', }); + expect('boundary_event_interrupting_conditional_id').toBeBoundaryEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + isInterrupting: true, + label: 'Interrupting Conditional Boundary Intermediate Event', + parentId: 'receive_task_instantiating_id', + }); + expect('boundary_event_interrupting_conditional_on_top_id').toBeBoundaryEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + isInterrupting: true, + label: 'Interrupting Conditional Boundary Intermediate Event On Top', + parentId: 'receive_task_instantiating_id', + }); // boundary event: non-interrupting expect('boundary_event_non_interrupting_message_id').toBeBoundaryEvent({ @@ -372,6 +404,18 @@ describe('mxGraph model', () => { label: 'Non-interrupting Signal Boundary Intermediate Event On Top', parentId: 'collapsed_call_activity_id', }); + expect('boundary_event_non_interrupting_conditional_id').toBeBoundaryEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + isInterrupting: false, + label: 'Non-interrupting Conditional Boundary Intermediate Event', + parentId: 'collapsed_call_activity_with_loop_id', + }); + expect('boundary_event_non_interrupting_conditional_on_top_id').toBeBoundaryEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + isInterrupting: false, + label: 'Non-interrupting Conditional Boundary Intermediate Event On Top', + parentId: 'collapsed_call_activity_with_loop_id', + }); // Sub-process expect('expanded_embedded_sub_process_id').toBeSubProcess({ @@ -572,6 +616,18 @@ describe('mxGraph model', () => { parentId: 'expanded_event_sub_process_with_start_events_id', isInterrupting: true, }); + expect('start_event_interrupting_conditional_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Interrupting Conditional Start Event In Sub-Process', + parentId: 'expanded_event_sub_process_with_start_events_id', + isInterrupting: true, + }); + expect('start_event_interrupting_conditional_on_top_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Interrupting Conditional Start Event On Top In Sub-Process', + parentId: 'expanded_event_sub_process_with_start_events_id', + isInterrupting: true, + }); // Non-interrupting Start Event expect('start_event_non_interrupting_message_id').toBeStartEvent({ @@ -610,6 +666,18 @@ describe('mxGraph model', () => { parentId: 'expanded_event_sub_process_with_start_events_id', isInterrupting: false, }); + expect('start_event_non_interrupting_conditional_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Non-interrupting Conditional Start Event In Sub-Process', + parentId: 'expanded_event_sub_process_with_start_events_id', + isInterrupting: false, + }); + expect('start_event_non_interrupting_conditional_on_top_id').toBeStartEvent({ + eventKind: ShapeBpmnEventKind.CONDITIONAL, + label: 'Non-interrupting Conditional Start Event On Top In Sub-Process', + parentId: 'expanded_event_sub_process_with_start_events_id', + isInterrupting: false, + }); // Call Activity calling process // Expanded @@ -931,10 +999,12 @@ describe('mxGraph model', () => { // boundary event: interrupting expect('boundary_event_interrupting_message_id').not.toBeCell(); expect('boundary_event_interrupting_timer_id').not.toBeCell(); + expect('boundary_event_interrupting_conditional_id').not.toBeCell(); // boundary event: non-interrupting expect('boundary_event_non_interrupting_message_id').not.toBeCell(); expect('boundary_event_non_interrupting_timer_id').not.toBeCell(); + expect('boundary_event_non_interrupting_conditional_id').not.toBeCell(); }); it('bpmn element shape should have coordinates relative to the pool when no lane', async () => { diff --git a/test/fixtures/bpmn/model-badly-attached-elements.bpmn b/test/fixtures/bpmn/model-badly-attached-elements.bpmn index 22aa5dfe9c..94af96e6f0 100644 --- a/test/fixtures/bpmn/model-badly-attached-elements.bpmn +++ b/test/fixtures/bpmn/model-badly-attached-elements.bpmn @@ -13,6 +13,12 @@ + + + + + + diff --git a/test/fixtures/bpmn/model-complete-semantic.bpmn b/test/fixtures/bpmn/model-complete-semantic.bpmn index 90ce4aca2e..bb6558588e 100644 --- a/test/fixtures/bpmn/model-complete-semantic.bpmn +++ b/test/fixtures/bpmn/model-complete-semantic.bpmn @@ -27,6 +27,7 @@ + @@ -263,6 +264,12 @@ top_compensate_definition_id + + + + + top_conditional_definition_id + @@ -283,6 +290,12 @@ top_signal_definition_id + + + + + top_conditional_definition_id + @@ -319,6 +332,12 @@ top_signal_definition_id + + + + + top_conditional_definition_id + @@ -358,6 +377,12 @@ top_cancel_definition_id + + + + + top_conditional_definition_id + top_signal_definition_id + + + + + top_conditional_definition_id + @@ -419,10 +452,10 @@ top_message_definition_id - + - + top_timer_definition_id @@ -437,6 +470,12 @@ top_link_definition_id + + + + + top_conditional_definition_id + @@ -546,13 +585,13 @@ - + - + - + @@ -632,16 +671,16 @@ - + - + - + - + @@ -845,6 +884,18 @@ + + + + + + + + + + + + @@ -883,6 +934,18 @@ + + + + + + + + + + + + @@ -960,6 +1023,18 @@ + + + + + + + + + + + + @@ -1031,15 +1106,15 @@ - + - + - + - + @@ -1066,18 +1141,30 @@ + + + + + + + + + + + + - + - + - + - + @@ -1214,6 +1301,18 @@ + + + + + + + + + + + + @@ -1241,15 +1340,27 @@ - + - + - + + + + + + + + + + + + + - + diff --git a/test/unit/component/parser/json/BpmnJsonParser.event.test.ts b/test/unit/component/parser/json/BpmnJsonParser.event.test.ts index c6a4d2048e..bfce8dbbf4 100644 --- a/test/unit/component/parser/json/BpmnJsonParser.event.test.ts +++ b/test/unit/component/parser/json/BpmnJsonParser.event.test.ts @@ -266,9 +266,9 @@ describe('parse bpmn as json for all events', () => { ['error', ShapeBpmnEventKind.ERROR], ['compensate', ShapeBpmnEventKind.COMPENSATION], ['cancel', ShapeBpmnEventKind.CANCEL], + ['conditional', ShapeBpmnEventKind.CONDITIONAL], // TODO To uncomment when an element is supported - // ['conditional', ShapeBpmnEventKind.CONDITIONAL], // ['escalation', ShapeBpmnEventKind.ESCALATION], ])(`for %s ${bpmnKind}`, (eventDefinitionKind: string, expectedShapeBpmnEventKind: ShapeBpmnEventKind) => { if (