Search in sources :

Example 1 with AdHocSubprocess

use of org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess in project kie-wb-common by kiegroup.

the class BPMNDirectDiagramMarshallerTest method testUnmarshallAddHocSubprocess.

@Test
public void testUnmarshallAddHocSubprocess() throws Exception {
    Diagram<Graph, Metadata> diagram = unmarshall(BPMN_ADHOC_SUBPROCESS);
    AdHocSubprocess adHocSubprocess = null;
    Iterator<Element> it = nodesIterator(diagram);
    while (it.hasNext()) {
        Element element = it.next();
        if (element.getContent() instanceof View) {
            Object oDefinition = ((View) element.getContent()).getDefinition();
            if (oDefinition instanceof AdHocSubprocess) {
                adHocSubprocess = (AdHocSubprocess) oDefinition;
                break;
            }
        }
    }
    assertNotNull(adHocSubprocess);
    BPMNGeneralSet generalSet = adHocSubprocess.getGeneral();
    AdHocSubprocessTaskExecutionSet executionSet = adHocSubprocess.getExecutionSet();
    ProcessData processData = adHocSubprocess.getProcessData();
    assertNotNull(generalSet);
    assertNotNull(executionSet);
    assertNotNull(processData);
    assertEquals("AdHocSubprocess1", generalSet.getName().getValue());
    assertEquals("AdHocSubprocess1Documentation", generalSet.getDocumentation().getValue());
    assertNotNull(executionSet.getAdHocCompletionCondition());
    assertNotNull(executionSet.getAdHocCompletionCondition().getValue());
    assertNotNull(executionSet.getAdHocOrdering());
    assertNotNull(executionSet.getOnEntryAction());
    assertNotNull(executionSet.getOnExitAction());
    assertEquals("autocomplete", executionSet.getAdHocCompletionCondition().getValue().getScript());
    assertEquals("drools", executionSet.getAdHocCompletionCondition().getValue().getLanguage());
    assertEquals("Sequential", executionSet.getAdHocOrdering().getValue());
    assertEquals(1, executionSet.getOnEntryAction().getValue().getValues().size());
    assertEquals("System.out.println(\"onEntryAction\");", executionSet.getOnEntryAction().getValue().getValues().get(0).getScript());
    assertEquals("mvel", executionSet.getOnEntryAction().getValue().getValues().get(0).getLanguage());
    assertEquals(1, executionSet.getOnExitAction().getValue().getValues().size());
    assertEquals("System.out.println(\"onExitAction\");", executionSet.getOnExitAction().getValue().getValues().get(0).getScript());
    assertEquals("java", executionSet.getOnExitAction().getValue().getValues().get(0).getLanguage());
    assertEquals("subProcessVar1:String:[],subProcessVar2:String:[]", processData.getProcessVariables().getValue());
    assertTrue(executionSet.getIsAsync().getValue());
    final String SLA_DUE_DATE = "12/25/1983";
    assertEquals(SLA_DUE_DATE, executionSet.getSlaDueDate().getValue());
}
Also used : Graph(org.kie.workbench.common.stunner.core.graph.Graph) ItemAwareElement(org.eclipse.bpmn2.ItemAwareElement) FlowElement(org.eclipse.bpmn2.FlowElement) RootElement(org.eclipse.bpmn2.RootElement) Element(org.kie.workbench.common.stunner.core.graph.Element) Metadata(org.kie.workbench.common.stunner.core.diagram.Metadata) AdHocSubprocessTaskExecutionSet(org.kie.workbench.common.stunner.bpmn.definition.property.task.AdHocSubprocessTaskExecutionSet) AdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess) BPMNGeneralSet(org.kie.workbench.common.stunner.bpmn.definition.property.general.BPMNGeneralSet) View(org.kie.workbench.common.stunner.core.graph.content.view.View) ProcessData(org.kie.workbench.common.stunner.bpmn.definition.property.variables.ProcessData) Test(org.junit.Test)

Example 2 with AdHocSubprocess

use of org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess in project kie-wb-common by kiegroup.

the class VariableSearchServiceTest method mockAdHocSubProcess.

protected AdHocSubprocess mockAdHocSubProcess(String variables) {
    AdHocSubprocess adHocSubprocess = mock(AdHocSubprocess.class);
    ProcessData processData = mockProcessData(variables);
    when(adHocSubprocess.getProcessData()).thenReturn(processData);
    return adHocSubprocess;
}
Also used : AdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess) ProcessData(org.kie.workbench.common.stunner.bpmn.definition.property.variables.ProcessData)

Example 3 with AdHocSubprocess

use of org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess in project kie-wb-common by kiegroup.

the class SubProcessConverterTest method testConvertAdHocSubprocessNode_autostart.

@Test
public void testConvertAdHocSubprocessNode_autostart() {
    final AdHocSubprocess definition = new AdHocSubprocess();
    definition.getExecutionSet().setAdHocAutostart(new AdHocAutostart(true));
    final View<BaseAdHocSubprocess> view = new ViewImpl<>(definition, Bounds.create());
    final Node<View<BaseAdHocSubprocess>, ?> node = new NodeImpl<>(UUID.randomUUID().toString());
    node.setContent(view);
    SubProcessPropertyWriter writer = tested.convertAdHocSubprocessNode(node);
    assertTrue(AdHocSubProcessPropertyWriter.class.isInstance(writer));
    assertTrue(CustomElement.autoStart.of(writer.getFlowElement()).get());
}
Also used : AdHocSubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter) NodeImpl(org.kie.workbench.common.stunner.core.graph.impl.NodeImpl) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) AdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) ViewImpl(org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl) AdHocAutostart(org.kie.workbench.common.stunner.bpmn.definition.property.task.AdHocAutostart) View(org.kie.workbench.common.stunner.core.graph.content.view.View) SubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.SubProcessPropertyWriter) AdHocSubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter) Test(org.junit.Test)

Example 4 with AdHocSubprocess

use of org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess in project kie-wb-common by kiegroup.

the class SubProcessConverterTest method testConvertAdHocSubprocessNode_notautostart.

@Test
public void testConvertAdHocSubprocessNode_notautostart() {
    final AdHocSubprocess definition = new AdHocSubprocess();
    definition.getExecutionSet().setAdHocAutostart(new AdHocAutostart(false));
    final View<BaseAdHocSubprocess> view = new ViewImpl<>(definition, Bounds.create());
    final Node<View<BaseAdHocSubprocess>, ?> node = new NodeImpl<>(UUID.randomUUID().toString());
    node.setContent(view);
    SubProcessPropertyWriter writer = tested.convertAdHocSubprocessNode(node);
    assertTrue(AdHocSubProcessPropertyWriter.class.isInstance(writer));
    assertFalse(CustomElement.autoStart.of(writer.getFlowElement()).get());
}
Also used : AdHocSubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter) NodeImpl(org.kie.workbench.common.stunner.core.graph.impl.NodeImpl) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) AdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) ViewImpl(org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl) AdHocAutostart(org.kie.workbench.common.stunner.bpmn.definition.property.task.AdHocAutostart) View(org.kie.workbench.common.stunner.core.graph.content.view.View) SubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.SubProcessPropertyWriter) AdHocSubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter) Test(org.junit.Test)

Example 5 with AdHocSubprocess

use of org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess in project kie-wb-common by kiegroup.

the class SubProcessConverterTest method testConvertAdhocSubprocess.

@Test
public void testConvertAdhocSubprocess() {
    AdHocSubprocess definition = new AdHocSubprocess();
    String adHocOrdering = "Parallel";
    boolean adHocAutostart = true;
    String processVariables = "processVar1:Object,processVar2:Integer";
    definition.getGeneral().getName().setValue(NAME);
    definition.getGeneral().getDocumentation().setValue(DOCUMENTATION);
    definition.getProcessData().getProcessVariables().setValue(processVariables);
    definition.getExecutionSet().getAdHocOrdering().setValue(adHocOrdering);
    definition.getExecutionSet().getAdHocAutostart().setValue(adHocAutostart);
    definition.getExecutionSet().getAdHocActivationCondition().setValue(ACTIVATION_CONDITION);
    definition.getExecutionSet().getAdHocCompletionCondition().setValue(COMPLETION_CONDITION);
    definition.getExecutionSet().getOnEntryAction().getValue().addValue(ON_ENTRY_ACTION);
    definition.getExecutionSet().getOnExitAction().getValue().addValue(ON_EXIT_ACTION);
    setBaseSubprocessExecutionSetValues(definition.getExecutionSet());
    double nodeX1 = 10;
    double nodeY1 = 20;
    double nodeX2 = 40;
    double nodeY2 = 60;
    View<BaseAdHocSubprocess> view = new ViewImpl<>(definition, Bounds.create(nodeX1, nodeY1, nodeX2, nodeY2));
    Node<View<? extends BPMNViewDefinition>, Edge> node = new NodeImpl<>(ELEMENT_ID);
    node.setContent(view);
    double parentX1 = 30;
    double parentY1 = 40;
    double parentX2 = 60;
    double parentY2 = 100;
    Node<View<? extends BPMNViewDefinition>, ?> parent = new NodeImpl<>("parentId");
    View<? extends BPMNViewDefinition> parentView = new ViewImpl<>(null, Bounds.create(parentX1, parentY1, parentX2, parentY2));
    parent.setContent(parentView);
    Edge<Child, Node> edge = new EdgeImpl("edgeId");
    edge.setContent(mock(Child.class));
    node.getInEdges().add(edge);
    edge.setSourceNode(parent);
    edge.setTargetNode(node);
    Result<SubProcessPropertyWriter> result = tested.convertSubProcess(node);
    assertTrue(result.isSuccess());
    AdHocSubProcess adHocSubProcess = (AdHocSubProcess) result.value().getElement();
    assertEquals(ELEMENT_ID, adHocSubProcess.getId());
    assertEquals(NAME, adHocSubProcess.getName());
    assertEquals(asCData(NAME), CustomElement.name.of(adHocSubProcess).get());
    assertEquals(asCData(DOCUMENTATION), adHocSubProcess.getDocumentation().get(0).getText());
    assertEquals(adHocOrdering, adHocSubProcess.getOrdering().getName());
    assertEquals(adHocAutostart, CustomElement.autoStart.of(adHocSubProcess).get());
    assertEquals(asCData(ACTIVATION_CONDITION), CustomElement.customActivationCondition.of(adHocSubProcess).get());
    assertEquals(Scripts.LANGUAGE.valueOf(COMPLETION_CONDITION.getLanguage().toUpperCase()).format(), ((FormalExpression) adHocSubProcess.getCompletionCondition()).getLanguage());
    assertEquals(asCData(COMPLETION_CONDITION.getScript()), ((FormalExpression) adHocSubProcess.getCompletionCondition()).getBody());
    assertEquals(ON_ENTRY_ACTION.getLanguage(), Scripts.onEntry(adHocSubProcess.getExtensionValues()).getValues().get(0).getLanguage());
    assertEquals(asCData(ON_ENTRY_ACTION.getScript()), Scripts.onEntry(adHocSubProcess.getExtensionValues()).getValues().get(0).getScript());
    assertEquals(ON_EXIT_ACTION.getLanguage(), Scripts.onExit(adHocSubProcess.getExtensionValues()).getValues().get(0).getLanguage());
    assertEquals(asCData(ON_EXIT_ACTION.getScript()), Scripts.onExit(adHocSubProcess.getExtensionValues()).getValues().get(0).getScript());
    assertVariables(Arrays.asList(new Pair<>("processVar1", "Object"), new Pair<>("processVar2", "Integer")), adHocSubProcess.getProperties());
    BPMNShape shape = result.value().getShape();
    assertEquals(parentX1 + nodeX1, shape.getBounds().getX(), 0);
    assertEquals(parentY1 + nodeY1, shape.getBounds().getY(), 0);
    assertEquals(nodeX2 - nodeX1, shape.getBounds().getWidth(), 0);
    assertEquals(nodeY2 - nodeY1, shape.getBounds().getHeight(), 0);
    assertBaseSubprocessExecutionSet(result.value());
}
Also used : NodeImpl(org.kie.workbench.common.stunner.core.graph.impl.NodeImpl) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) Node(org.kie.workbench.common.stunner.core.graph.Node) EdgeImpl(org.kie.workbench.common.stunner.core.graph.impl.EdgeImpl) AdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess) BaseAdHocSubprocess(org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess) BPMNViewDefinition(org.kie.workbench.common.stunner.bpmn.definition.BPMNViewDefinition) BPMNShape(org.eclipse.bpmn2.di.BPMNShape) View(org.kie.workbench.common.stunner.core.graph.content.view.View) SubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.SubProcessPropertyWriter) AdHocSubProcessPropertyWriter(org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter) AdHocSubProcess(org.eclipse.bpmn2.AdHocSubProcess) ViewImpl(org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl) Edge(org.kie.workbench.common.stunner.core.graph.Edge) Child(org.kie.workbench.common.stunner.core.graph.content.relationship.Child) Pair(org.uberfire.commons.data.Pair) Test(org.junit.Test)

Aggregations

AdHocSubprocess (org.kie.workbench.common.stunner.bpmn.definition.AdHocSubprocess)20 Test (org.junit.Test)14 Metadata (org.kie.workbench.common.stunner.core.diagram.Metadata)8 Graph (org.kie.workbench.common.stunner.core.graph.Graph)8 View (org.kie.workbench.common.stunner.core.graph.content.view.View)8 ProcessData (org.kie.workbench.common.stunner.bpmn.definition.property.variables.ProcessData)5 ViewImpl (org.kie.workbench.common.stunner.core.graph.content.view.ViewImpl)5 NodeImpl (org.kie.workbench.common.stunner.core.graph.impl.NodeImpl)5 AdHocSubProcessPropertyWriter (org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.AdHocSubProcessPropertyWriter)4 EmbeddedSubprocess (org.kie.workbench.common.stunner.bpmn.definition.EmbeddedSubprocess)4 BPMNGeneralSet (org.kie.workbench.common.stunner.bpmn.definition.property.general.BPMNGeneralSet)4 AdHocSubprocessTaskExecutionSet (org.kie.workbench.common.stunner.bpmn.definition.property.task.AdHocSubprocessTaskExecutionSet)4 SubProcessPropertyWriter (org.kie.workbench.common.stunner.bpmn.backend.converters.fromstunner.properties.SubProcessPropertyWriter)3 BPMNDiagramImpl (org.kie.workbench.common.stunner.bpmn.definition.BPMNDiagramImpl)3 BaseAdHocSubprocess (org.kie.workbench.common.stunner.bpmn.definition.BaseAdHocSubprocess)3 EventSubprocess (org.kie.workbench.common.stunner.bpmn.definition.EventSubprocess)3 MultipleInstanceSubprocess (org.kie.workbench.common.stunner.bpmn.definition.MultipleInstanceSubprocess)3 Node (org.kie.workbench.common.stunner.core.graph.Node)3 AdHocSubProcess (org.eclipse.bpmn2.AdHocSubProcess)2 FlowElement (org.eclipse.bpmn2.FlowElement)2