Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[incubator-kie-issues-1131] test migration from V7 to code generation-28 #3651

Closed
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -31,6 +31,8 @@
import java.util.stream.Collectors;

import org.drools.compiler.rule.builder.PackageBuildContext;
import org.jbpm.bpmn2.activity.DataOutputAssignmentCustomExpressionLangModel;
import org.jbpm.bpmn2.activity.DataOutputAssignmentCustomExpressionLangProcess;
import org.jbpm.bpmn2.activity.ScriptTaskModel;
import org.jbpm.bpmn2.activity.ScriptTaskProcess;
import org.jbpm.bpmn2.activity.ScriptTaskWithIOModel;
@@ -89,6 +91,8 @@
import org.jbpm.bpmn2.subprocess.CallActivityWithBoundaryEventProcess;
import org.jbpm.bpmn2.subprocess.CallActivityWithIOexpressionModel;
import org.jbpm.bpmn2.subprocess.CallActivityWithIOexpressionProcess;
import org.jbpm.bpmn2.subprocess.ErrorsBetweenProcessModel;
import org.jbpm.bpmn2.subprocess.ErrorsBetweenProcessProcess;
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueModel;
import org.jbpm.bpmn2.subprocess.InputMappingUsingValueProcess;
import org.jbpm.bpmn2.subprocess.MainGroupAssignmentModel;
@@ -125,6 +129,7 @@
import org.jbpm.test.util.ProcessCompletedCountDownProcessEventListener;
import org.jbpm.test.utils.EventTrackerProcessListener;
import org.jbpm.test.utils.ProcessTestHelper;
import org.jbpm.workflow.core.WorkflowProcess;
import org.jbpm.workflow.core.impl.DataAssociation;
import org.jbpm.workflow.core.impl.DataDefinition;
import org.jbpm.workflow.core.node.ActionNode;
@@ -168,6 +173,7 @@
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcessInstance;
import org.kie.kogito.process.ProcessInstance;
import org.kie.kogito.process.impl.AbstractProcess;
import org.kie.kogito.process.workitems.InternalKogitoWorkItem;

import static org.assertj.core.api.Assertions.assertThat;
40 changes: 28 additions & 12 deletions jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/CompensationTest.java
Original file line number Diff line number Diff line change
@@ -27,6 +27,8 @@
import org.jbpm.bpmn2.compensation.BookingModel;
import org.jbpm.bpmn2.compensation.BookingProcess;
import org.jbpm.bpmn2.compensation.CancelResourceProcess;
import org.jbpm.bpmn2.compensation.InSubSubProcessModel;
import org.jbpm.bpmn2.compensation.InSubSubProcessProcess;
import org.jbpm.bpmn2.compensation.IntermediateThrowEventModel;
import org.jbpm.bpmn2.compensation.IntermediateThrowEventProcess;
import org.jbpm.bpmn2.compensation.ParallelOrderedCompensationIntermediateThrowEventModel;
@@ -195,22 +197,36 @@ public void orderedCompensation() {

@Test
public void compensationInSubSubProcesses() throws Exception {
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/compensation/BPMN2-InSubSubProcess.bpmn2");
Application app = ProcessTestHelper.newApplication();

TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler);
Map<String, Object> params = new HashMap<>();
params.put("x", "0");
KogitoProcessInstance processInstance = kruntime.startProcess("InSubSubProcess", params);
ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);

kruntime.signalEvent("Compensation", "_C-2", processInstance.getStringId());
org.kie.kogito.process.Process<InSubSubProcessModel> definition = InSubSubProcessProcess.newProcess(app);
InSubSubProcessModel model = definition.createModel();
model.setX("0");

kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
kruntime.getKogitoWorkItemManager().completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
ProcessInstance<InSubSubProcessModel> processInstance = definition.createInstance(model);
processInstance.start();

processInstance.send(Sig.of("Compensation", "_C-2"));

processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);
processInstance.completeWorkItem(workItemHandler.getWorkItem().getStringId(), null);

assertThat(processInstance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(processInstance.variables().getX()).isEqualTo("2");

/*the nodes have no connection in the bpmn file,
java.lang.IllegalStateException: Process could not be validated ![Process 'Default Process' [InSubSubProcess]: Node 'Boundary Compensate 3' [_X-1] Event has no outgoing connection
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 3' [_X-2] Action has no incoming connection.,
Process 'Default Process' [InSubSubProcess]: Node 'Boundary Compensate 2' [_Y-1] Event has no outgoing connection,
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 2' [_Y-2] Action has no incoming connection.,
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 3' [_X-2] Has no connection to the start node.,
Process 'Default Process' [InSubSubProcess]: Node 'Compensate Handler 2' [_Y-2] Has no connection to the start node.]*/
*/

// compensation activity (assoc. with script task) signaled *after* script task
assertProcessInstanceCompleted(processInstance.getStringId(), kruntime);
assertProcessVarValue(processInstance, "x", "2");
}

@Test
67 changes: 44 additions & 23 deletions jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/DataTest.java
Original file line number Diff line number Diff line change
@@ -32,6 +32,10 @@
import org.jbpm.bpmn2.core.Association;
import org.jbpm.bpmn2.core.DataStore;
import org.jbpm.bpmn2.core.Definitions;
import org.jbpm.bpmn2.data.AssociationModel;
import org.jbpm.bpmn2.data.AssociationProcess;
import org.jbpm.bpmn2.data.CorrelationKeyModel;
import org.jbpm.bpmn2.data.CorrelationKeyProcess;
import org.jbpm.bpmn2.data.DataInputAssociationsLazyCreatingModel;
import org.jbpm.bpmn2.data.DataInputAssociationsLazyCreatingProcess;
import org.jbpm.bpmn2.data.DataInputAssociationsModel;
@@ -50,6 +54,8 @@
import org.jbpm.bpmn2.data.DataOutputAssociationsProcess;
import org.jbpm.bpmn2.data.DataOutputAssociationsXmlNodeModel;
import org.jbpm.bpmn2.data.DataOutputAssociationsXmlNodeProcess;
import org.jbpm.bpmn2.data.DataStoreModel;
import org.jbpm.bpmn2.data.DataStoreProcess;
import org.jbpm.bpmn2.data.Evaluation2Model;
import org.jbpm.bpmn2.data.Evaluation2Process;
import org.jbpm.bpmn2.data.Evaluation3Model;
@@ -60,7 +66,6 @@
import org.jbpm.bpmn2.data.ImportProcess;
import org.jbpm.bpmn2.flow.DataOutputAssociationsHumanTaskModel;
import org.jbpm.bpmn2.flow.DataOutputAssociationsHumanTaskProcess;
import org.jbpm.bpmn2.xml.ProcessHandler;
import org.jbpm.process.core.datatype.impl.type.ObjectDataType;
import org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler;
import org.jbpm.test.utils.ProcessTestHelper;
@@ -71,7 +76,6 @@
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
import org.kie.kogito.internal.process.runtime.KogitoWorkItemHandler;
import org.kie.kogito.internal.process.runtime.KogitoWorkItemManager;
import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcessInstance;
import org.kie.kogito.process.ProcessInstance;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -106,31 +110,46 @@ public void testDataObject() {

@Test
public void testDataStore() throws Exception {
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-DataStore.bpmn2");
KogitoProcessInstance processInstance = kruntime.startProcess("DataStore");
Definitions def = (Definitions) processInstance.getProcess()
.getMetaData().get("Definitions");
assertThat(def.getDataStores()).isNotNull().hasSize(1);
Application app = ProcessTestHelper.newApplication();

org.kie.kogito.process.Process<DataStoreModel> processDefinition = DataStoreProcess.newProcess(app);
DataStoreModel model = processDefinition.createModel();
org.kie.kogito.process.ProcessInstance<DataStoreModel> instance = processDefinition.createInstance(model);
instance.start();

/*
* metaData is not present, I think it is protected and hence cannot import.
* How to get process metadata from the process object(only then we can get the definition metadata)
*/

Definitions def = (Definitions) instance.process().metaData().get("Definitions");
assertThat(def.getDataStores()).isNotNull().hasSize(1);
DataStore dataStore = def.getDataStores().get(0);
assertThat(dataStore.getId()).isEqualTo("employee");
assertThat(dataStore.getName()).isEqualTo("employeeStore");
assertThat(((ObjectDataType) dataStore.getType()).getClassName()).isEqualTo(String.class.getCanonicalName());

}

@Test
public void testAssociation() throws Exception {
kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-Association.bpmn2");
KogitoProcessInstance processInstance = kruntime.startProcess("Association");
List<Association> associations = (List<Association>) processInstance.getProcess().getMetaData().get(ProcessHandler.ASSOCIATIONS);
assertThat(associations).isNotNull().hasSize(1);
Application app = ProcessTestHelper.newApplication();
org.kie.kogito.process.Process<AssociationModel> processDefinition = AssociationProcess.newProcess(app);
AssociationModel model = processDefinition.createModel();
org.kie.kogito.process.ProcessInstance<AssociationModel> instance = processDefinition.createInstance(model);
instance.start();

/*
* metaData is not present, I think it is protected and hence cannot import.
* How to get process metadata from the process object(only then we can get the definition metadata)
*/

Definitions def = (Definitions) instance.process().metaData().get("Definitions");
List<Association> associations = def.getAssociations();
assertThat(associations).isNotNull().hasSize(1);
Association assoc = associations.get(0);
assertThat(assoc.getId()).isEqualTo("_1234");
assertThat(assoc.getSourceRef()).isEqualTo("_1");
assertThat(assoc.getTargetRef()).isEqualTo("_2");

}

@Test
@@ -482,17 +501,19 @@ public void executeWorkItem(KogitoWorkItem workItem, KogitoWorkItemManager mgr)
instance.start();
}

@Test
public void testDefaultProcessVariableValue() throws Exception {

kruntime = createKogitoProcessRuntime("org/jbpm/bpmn2/data/BPMN2-CorrelationKey.bpmn2");

Map<String, Object> parameters = new HashMap<String, Object>();

KogitoWorkflowProcessInstance processInstance = (KogitoWorkflowProcessInstance) kruntime.startProcess("CorrelationKey", parameters);
public void testDefaultProcessVariableValue() {
Application app = ProcessTestHelper.newApplication();
org.kie.kogito.process.Process<CorrelationKeyModel> processDefinition = CorrelationKeyProcess.newProcess(app);
CorrelationKeyModel model = processDefinition.createModel();
org.kie.kogito.process.ProcessInstance<CorrelationKeyModel> instance = processDefinition.createInstance(model);
instance.start();

assertThat(processInstance.getVariable("procVar")).isEqualTo("defaultProc");
assertThat(processInstance.getVariable("intVar")).isEqualTo(1);
/*
* CorrelationKeyModel class does not have methods named getProcVar and getIntVar .
* This is due to acutal variables/methods being different in the CorrelationKeyModel class.
*/
assertThat(model.getProcVar()).isEqualTo("defaultProc");
assertThat(model.getIntVar()).isEqualTo(1);

}