@Test @Override public void testUnmarshallSubprocessLevelEventEmptyProperties() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(marshaller, BPMN_THROWING_INTERMEDIATE_EVENT_FILE_PATH); assertDiagram(diagram, AMOUNT_OF_NODES_IN_DIAGRAM); IntermediateSignalEventThrowing emptySubprocessEvent = getThrowingIntermediateNodeById(diagram, EMPTY_SUBPROCESS_LEVEL_EVENT_ID, HAS_NO_INCOME_EDGE); assertGeneralSet(emptySubprocessEvent.getGeneral(), EMPTY_VALUE, EMPTY_VALUE); assertSignalEventExecutionSet(emptySubprocessEvent.getExecutionSet(), EMPTY_VALUE, EVENT_SIGNAL_SCOPE_DEFAULT); assertDataIOSet(emptySubprocessEvent.getDataIOSet(), EMPTY_VALUE); }
private BpmnNode signalEvent( IntermediateThrowEvent event, SignalEventDefinition eventDefinition) { Node<View<IntermediateSignalEventThrowing>, Edge> node = factoryManager.newNode(event.getId(), IntermediateSignalEventThrowing.class); IntermediateSignalEventThrowing definition = node.getContent().getDefinition(); EventPropertyReader p = propertyReaderFactory.of(event); definition.setGeneral(new BPMNGeneralSet( new Name(p.getName()), new Documentation(p.getDocumentation()) )); definition.setDataIOSet(new DataIOSet( p.getAssignmentsInfo() )); definition.setExecutionSet(new ScopedSignalEventExecutionSet( new SignalRef(p.getSignalRef()), new SignalScope(p.getSignalScope()) )); node.getContent().setBounds(p.getBounds()); definition.setDimensionsSet(p.getCircleDimensionSet()); definition.setFontSet(p.getFontSet()); definition.setBackgroundSet(p.getBackgroundSet()); return BpmnNode.of(node); }
@Override public Function<Node, Pair<Object, String>> getMapper() { return node -> { SignalRef signalRef = null; if (startSignalEventsFilter.test(node)) { signalRef = ((StartSignalEvent) ((View) node.getContent()).getDefinition()).getExecutionSet().getSignalRef(); } else if (intermediateCatchingSignalEventsFilter.test(node)) { signalRef = ((IntermediateSignalEventCatching) ((View) node.getContent()).getDefinition()).getExecutionSet().getSignalRef(); } else if (intermediateThrowingSignalEventsFilter.test(node)) { signalRef = ((IntermediateSignalEventThrowing) ((View) node.getContent()).getDefinition()).getExecutionSet().getSignalRef(); } else if (endSignalEventsFilter.test(node)) { signalRef = ((EndSignalEvent) ((View) node.getContent()).getDefinition()).getExecutionSet().getSignalRef(); } if (signalRef != null && signalRef.getValue() != null && !signalRef.getValue().isEmpty()) { return new Pair<>(signalRef.getValue(), signalRef.getValue(), Pair.PairEqualsMode.K1); } else { return null; } }; } }
assignmentsInfo = ((IntermediateMessageEventThrowing) definition).getDataIOSet().getAssignmentsinfo(); } else if (definition instanceof IntermediateSignalEventThrowing) { assignmentsInfo = ((IntermediateSignalEventThrowing) definition).getDataIOSet().getAssignmentsinfo(); } else if (definition instanceof StartErrorEvent) { assignmentsInfo = ((StartErrorEvent) definition).getDataIOSet().getAssignmentsinfo();
@Test @Override public void testUnmarshallTopLevelEmptyEventProperties() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(marshaller, BPMN_THROWING_INTERMEDIATE_EVENT_FILE_PATH); assertDiagram(diagram, AMOUNT_OF_NODES_IN_DIAGRAM); IntermediateSignalEventThrowing emptyTopEvent = getThrowingIntermediateNodeById(diagram, EMPTY_TOP_LEVEL_EVENT_ID, HAS_NO_INCOME_EDGE); assertGeneralSet(emptyTopEvent.getGeneral(), EMPTY_VALUE, EMPTY_VALUE); assertSignalEventExecutionSet(emptyTopEvent.getExecutionSet(), EMPTY_VALUE, EVENT_SIGNAL_SCOPE_DEFAULT); assertDataIOSet(emptyTopEvent.getDataIOSet(), EMPTY_VALUE); }
@Before @SuppressWarnings("unchecked") public void setUp() { when(nodeWriter.getElement()).thenReturn(subProcess); outEdges = new ArrayList<>(); outEdges.add(mockEdge(mock(Node.class), mockNode(new IntermediateTimerEvent()))); outEdges.add(mockEdge(mock(Node.class), mockNode(new UserTask()))); outEdges.add(mockEdge(mock(Node.class), mockNode(new ScriptTask()))); outEdges.add(mockEdge(mock(Node.class), mockNode(new IntermediateSignalEventThrowing()))); outEdges.add(mockEdge(mock(Node.class), mockNode(new EmbeddedSubprocess()))); outEdges.add(mockEdge(mock(Node.class), mockNode(new EndEscalationEvent()))); when(eventSubprocessNode.getOutEdges()).thenReturn(outEdges); converter = new EventSubProcessPostConverter(); }
@Test @Override public void testUnmarshallTopLevelEventWithIncomeEmptyProperties() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(marshaller, BPMN_THROWING_INTERMEDIATE_EVENT_FILE_PATH); assertDiagram(diagram, AMOUNT_OF_NODES_IN_DIAGRAM); IntermediateSignalEventThrowing emptyEvent = getThrowingIntermediateNodeById(diagram, EMPTY_WITH_INCOME_TOP_LEVEL_EVENT_ID, HAS_INCOME_EDGE); assertGeneralSet(emptyEvent.getGeneral(), EMPTY_VALUE, EMPTY_VALUE); assertSignalEventExecutionSet(emptyEvent.getExecutionSet(), EMPTY_VALUE, EVENT_SIGNAL_SCOPE_DEFAULT); assertDataIOSet(emptyEvent.getDataIOSet(), EMPTY_VALUE); }
EmbeddedSubprocess level1SubProcess1 = new EmbeddedSubprocess(); ScriptTask level1Node1 = new ScriptTask(); IntermediateSignalEventThrowing level1Node2 = new IntermediateSignalEventThrowing(); AdHocSubprocess level2SubProcess1 = new AdHocSubprocess(); BusinessRuleTask level2Node1 = new BusinessRuleTask();
@Test @Override public void testUnmarshallSubprocessLevelEventWithIncomeEmptyProperties() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(marshaller, BPMN_THROWING_INTERMEDIATE_EVENT_FILE_PATH); assertDiagram(diagram, AMOUNT_OF_NODES_IN_DIAGRAM); IntermediateSignalEventThrowing emptySubprocessEvent = getThrowingIntermediateNodeById(diagram, EMPTY_WITH_INCOME_SUBPROCESS_LEVEL_EVENT_ID, HAS_INCOME_EDGE); assertGeneralSet(emptySubprocessEvent.getGeneral(), EMPTY_VALUE, EMPTY_VALUE); assertSignalEventExecutionSet(emptySubprocessEvent.getExecutionSet(), EMPTY_VALUE, EVENT_SIGNAL_SCOPE_DEFAULT); assertDataIOSet(emptySubprocessEvent.getDataIOSet(), EMPTY_VALUE); }
private PropertyWriter signalEvent(Node<View<IntermediateSignalEventThrowing>, ?> n) { IntermediateThrowEvent event = bpmn2.createIntermediateThrowEvent(); event.setId(n.getUUID()); IntermediateSignalEventThrowing definition = n.getContent().getDefinition(); ThrowEventPropertyWriter p = propertyWriterFactory.of(event); BPMNGeneralSet general = definition.getGeneral(); p.setName(general.getName().getValue()); p.setDocumentation(general.getDocumentation().getValue()); p.setAssignmentsInfo( definition.getDataIOSet().getAssignmentsinfo()); p.addSignal(definition.getExecutionSet().getSignalRef()); p.addSignalScope(definition.getExecutionSet().getSignalScope()); p.setBounds(n.getContent().getBounds()); return p; }
FILLED_SUBPROCESS_LEVEL_PROCESS_INSTANCE_SCOPE_ID, HAS_NO_INCOME_EDGE); assertGeneralSet(filledSubprocessEventProcessInstance.getGeneral(), EVENT_NAME_PROCESS_INSTANCE_SCOPE, EVENT_DOCUMENTATION_PROCESS_INSTANCE_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventProcessInstance.getExecutionSet(), EVENT_REF_PROCESS_INSTANCE_SCOPE, EVENT_SIGNAL_SCOPE_PROCESS_INSTANCE); assertDataIOSet(filledSubprocessEventProcessInstance.getDataIOSet(), EVENT_DATA_INPUT_PROCESS_INSTANCE_SCOPE); assertGeneralSet(filledSubprocessEventProject.getGeneral(), EVENT_NAME_PROJECT_SCOPE, EVENT_DOCUMENTATION_PROJECT_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventProject.getExecutionSet(), EVENT_REF_PROJECT_SCOPE, EVENT_SIGNAL_SCOPE_PROJECT); assertDataIOSet(filledSubprocessEventProject.getDataIOSet(), EVENT_DATA_INPUT_PROJECT_SCOPE); assertGeneralSet(filledSubprocessEventExternal.getGeneral(), EVENT_NAME_EXTERNAL_SCOPE, EVENT_DOCUMENTATION_EXTERNAL_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventExternal.getExecutionSet(), EVENT_REF_EXTERNAL_SCOPE, EVENT_SIGNAL_SCOPE_EXTERNAL); assertDataIOSet(filledSubprocessEventExternal.getDataIOSet(), EVENT_DATA_INPUT_EXTERNAL_SCOPE);
FILLED_WITH_INCOME_SUBPROCESS_LEVEL_PROCESS_INSTANCE_SCOPE_ID, HAS_INCOME_EDGE); assertGeneralSet(filledSubprocessEventProcessInstance.getGeneral(), EVENT_NAME_PROCESS_INSTANCE_SCOPE, EVENT_DOCUMENTATION_PROCESS_INSTANCE_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventProcessInstance.getExecutionSet(), EVENT_REF_PROCESS_INSTANCE_SCOPE, EVENT_SIGNAL_SCOPE_PROCESS_INSTANCE); assertDataIOSet(filledSubprocessEventProcessInstance.getDataIOSet(), EVENT_DATA_INPUT_PROCESS_INSTANCE_SCOPE); assertGeneralSet(filledSubprocessEventProject.getGeneral(), EVENT_NAME_PROJECT_SCOPE, EVENT_DOCUMENTATION_PROJECT_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventProject.getExecutionSet(), EVENT_REF_PROJECT_SCOPE, EVENT_SIGNAL_SCOPE_PROJECT); assertDataIOSet(filledSubprocessEventProject.getDataIOSet(), EVENT_DATA_INPUT_PROJECT_SCOPE); assertGeneralSet(filledSubprocessEventExternal.getGeneral(), EVENT_NAME_EXTERNAL_SCOPE, EVENT_DOCUMENTATION_EXTERNAL_SCOPE); assertSignalEventExecutionSet(filledSubprocessEventExternal.getExecutionSet(), EVENT_REF_EXTERNAL_SCOPE, EVENT_SIGNAL_SCOPE_EXTERNAL); assertDataIOSet(filledSubprocessEventExternal.getDataIOSet(), EVENT_DATA_INPUT_EXTERNAL_SCOPE);
FILLED_TOP_LEVEL_EVENT_PROCESS_INSTANCE_SCOPE_ID, HAS_NO_INCOME_EDGE); assertGeneralSet(filledTopEventProcessInstance.getGeneral(), EVENT_NAME_PROCESS_INSTANCE_SCOPE, EVENT_DOCUMENTATION_PROCESS_INSTANCE_SCOPE); assertSignalEventExecutionSet(filledTopEventProcessInstance.getExecutionSet(), EVENT_REF_PROCESS_INSTANCE_SCOPE, EVENT_SIGNAL_SCOPE_PROCESS_INSTANCE); assertDataIOSet(filledTopEventProcessInstance.getDataIOSet(), EVENT_DATA_INPUT_PROCESS_INSTANCE_SCOPE); assertGeneralSet(filledTopEventProject.getGeneral(), EVENT_NAME_PROJECT_SCOPE, EVENT_DOCUMENTATION_PROJECT_SCOPE); assertSignalEventExecutionSet(filledTopEventProject.getExecutionSet(), EVENT_REF_PROJECT_SCOPE, EVENT_SIGNAL_SCOPE_PROJECT); assertDataIOSet(filledTopEventProject.getDataIOSet(), EVENT_DATA_INPUT_PROJECT_SCOPE); assertGeneralSet(filledTopEventExternal.getGeneral(), EVENT_NAME_EXTERNAL_SCOPE, EVENT_DOCUMENTATION_EXTERNAL_SCOPE); assertSignalEventExecutionSet(filledTopEventExternal.getExecutionSet(), EVENT_REF_EXTERNAL_SCOPE, EVENT_SIGNAL_SCOPE_EXTERNAL); assertDataIOSet(filledTopEventExternal.getDataIOSet(), EVENT_DATA_INPUT_EXTERNAL_SCOPE);
FILLED_WITH_INCOME_TOP_LEVEL_EVENT_PROCESS_INSTANCE_SCOPE_ID, HAS_INCOME_EDGE); assertGeneralSet(filledTopEventProcessInstance.getGeneral(), EVENT_NAME_PROCESS_INSTANCE_SCOPE, EVENT_DOCUMENTATION_PROCESS_INSTANCE_SCOPE); assertSignalEventExecutionSet(filledTopEventProcessInstance.getExecutionSet(), EVENT_REF_PROCESS_INSTANCE_SCOPE, EVENT_SIGNAL_SCOPE_PROCESS_INSTANCE); assertDataIOSet(filledTopEventProcessInstance.getDataIOSet(), EVENT_DATA_INPUT_PROCESS_INSTANCE_SCOPE); assertGeneralSet(filledTopEventProject.getGeneral(), EVENT_NAME_PROJECT_SCOPE, EVENT_DOCUMENTATION_PROJECT_SCOPE); assertSignalEventExecutionSet(filledTopEventProject.getExecutionSet(), EVENT_REF_PROJECT_SCOPE, EVENT_SIGNAL_SCOPE_PROJECT); assertDataIOSet(filledTopEventProject.getDataIOSet(), EVENT_DATA_INPUT_PROJECT_SCOPE); assertGeneralSet(filledTopEventExternal.getGeneral(), EVENT_NAME_EXTERNAL_SCOPE, EVENT_DOCUMENTATION_EXTERNAL_SCOPE); assertSignalEventExecutionSet(filledTopEventExternal.getExecutionSet(), EVENT_REF_EXTERNAL_SCOPE, EVENT_SIGNAL_SCOPE_EXTERNAL); assertDataIOSet(filledTopEventExternal.getDataIOSet(), EVENT_DATA_INPUT_EXTERNAL_SCOPE);
@Test @SuppressWarnings("unchecked") public void testUnmarshallIntermediateSignalEventThrowing() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(BPMN_INTERMEDIATE_SIGNAL_EVENTTHROWING); assertDiagram(diagram, 2); assertEquals("intermediateSignalThrowing", diagram.getMetadata().getTitle()); Node<? extends Definition, ?> intermediateEventNode = diagram.getGraph().getNode("_A45EC77D-5414-4348-BA8F-05C4FFD660EE"); IntermediateSignalEventThrowing intermediateSignalEventThrowing = (IntermediateSignalEventThrowing) intermediateEventNode.getContent().getDefinition(); assertNotNull(intermediateSignalEventThrowing.getGeneral()); assertEquals("MySignalThrowingEvent", intermediateSignalEventThrowing.getGeneral().getName().getValue()); assertEquals("MySignalThrowingEventDocumentation", intermediateSignalEventThrowing.getGeneral().getDocumentation().getValue()); assertNotNull(intermediateSignalEventThrowing.getExecutionSet()); assertEquals("processInstance", intermediateSignalEventThrowing.getExecutionSet().getSignalScope().getValue()); assertEquals("MySignal", intermediateSignalEventThrowing.getExecutionSet().getSignalRef().getValue()); DataIOSet dataIOSet = intermediateSignalEventThrowing.getDataIOSet(); AssignmentsInfo assignmentsInfo = dataIOSet.getAssignmentsinfo(); assertEquals("_input1:String||||[din]var1->_input1", assignmentsInfo.getValue()); }
@Test @SuppressWarnings("unchecked") public void testUnmarshallIntermediateSignalEventThrowing() throws Exception { Diagram<Graph, Metadata> diagram = unmarshall(BPMN_INTERMEDIATE_SIGNAL_EVENTTHROWING); assertDiagram(diagram, 2); assertEquals("intermediateSignalThrowing", diagram.getMetadata().getTitle()); Node<? extends Definition, ?> intermediateEventNode = diagram.getGraph().getNode("_A45EC77D-5414-4348-BA8F-05C4FFD660EE"); IntermediateSignalEventThrowing intermediateSignalEventThrowing = (IntermediateSignalEventThrowing) intermediateEventNode.getContent().getDefinition(); assertNotNull(intermediateSignalEventThrowing.getGeneral()); assertEquals("MySignalThrowingEvent", intermediateSignalEventThrowing.getGeneral().getName().getValue()); assertEquals("MySignalThrowingEventDocumentation", intermediateSignalEventThrowing.getGeneral().getDocumentation().getValue()); assertNotNull(intermediateSignalEventThrowing.getExecutionSet()); assertEquals("processInstance", intermediateSignalEventThrowing.getExecutionSet().getSignalScope().getValue()); assertEquals("MySignal", intermediateSignalEventThrowing.getExecutionSet().getSignalRef().getValue()); DataIOSet dataIOSet = intermediateSignalEventThrowing.getDataIOSet(); AssignmentsInfo assignmentsInfo = dataIOSet.getAssignmentsinfo(); assertEquals("_input1:String||||[din]var1->_input1", assignmentsInfo.getValue()); }