summaryrefslogtreecommitdiff
path: root/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java
diff options
context:
space:
mode:
authorThomas Lenz <thomas.lenz@egiz.gv.at>2019-11-21 08:59:34 +0100
committerThomas Lenz <thomas.lenz@egiz.gv.at>2019-11-21 08:59:34 +0100
commit05835c051b57d3231e3ddf8dc160f1477a6494ca (patch)
tree257f1b31329d2783e333bd4223e56f5bd64799ee /eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java
parent2ba634720fd8ce44f6322f3b8ee3e930e67631b6 (diff)
downloadEAAF-Components-05835c051b57d3231e3ddf8dc160f1477a6494ca.tar.gz
EAAF-Components-05835c051b57d3231e3ddf8dc160f1477a6494ca.tar.bz2
EAAF-Components-05835c051b57d3231e3ddf8dc160f1477a6494ca.zip
add stop condition to process-flow engine that can be set dynamically by tasks
Diffstat (limited to 'eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java')
-rw-r--r--eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java96
1 files changed, 69 insertions, 27 deletions
diff --git a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java
index 78fdde61..dc45534e 100644
--- a/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java
+++ b/eaaf_core/src/test/java/at/gv/egiz/eaaf/core/impl/idp/process/test/ProcessEngineTest.java
@@ -33,6 +33,7 @@ import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.io.InputStream;
+import org.apache.commons.lang3.RandomStringUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -44,6 +45,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import at.gv.egiz.eaaf.core.api.idp.process.ProcessEngine;
import at.gv.egiz.eaaf.core.exceptions.ProcessExecutionException;
+import at.gv.egiz.eaaf.core.exceptions.TaskExecutionException;
import at.gv.egiz.eaaf.core.impl.idp.module.test.TestRequestImpl;
import at.gv.egiz.eaaf.core.impl.idp.process.ProcessDefinitionParser;
import at.gv.egiz.eaaf.core.impl.idp.process.ProcessDefinitionParserException;
@@ -64,7 +66,7 @@ public class ProcessEngineTest {
public void init() throws IOException, ProcessDefinitionParserException {
if (!isInitialized) {
- ProcessDefinitionParser pdp = new ProcessDefinitionParser();
+ final ProcessDefinitionParser pdp = new ProcessDefinitionParser();
if (pe == null) {
pe = applicationContext.getBean("processEngine", ProcessEngine.class);
@@ -79,29 +81,19 @@ public class ProcessEngineTest {
((ProcessEngineImpl) pe).registerProcessDefinition(pdp.parse(in));
}
+ try (InputStream in = ProcessEngineTest.class.getResourceAsStream("/process/test/SampleProcessDefinition4.xml")) {
+ ((ProcessEngineImpl) pe).registerProcessDefinition(pdp.parse(in));
+ }
+
+ try (InputStream in = ProcessEngineTest.class.getResourceAsStream("/process/test/SampleProcessDefinition5.xml")) {
+ ((ProcessEngineImpl) pe).registerProcessDefinition(pdp.parse(in));
+ }
+
//initHibernateForTesting();
isInitialized = true;
}
}
- private static void initHibernateForTesting() throws IOException{
-
-// InputStream in = ProcessEngineTest.class.getResourceAsStream("/at/gv/egovernment/moa/id/process/hibernate.configuration.test.properties");
-// Properties props = new Properties();
-// props.load(in);
-//
-// try {
-// //ConfigurationDBUtils.initHibernate(props);
-// Configuration config = new Configuration();
-// config.addProperties(props);
-// //config.addAnnotatedClass(ProcessInstanceStore.class);
-// config.addAnnotatedClass(AssertionStore.class);
-// //MOASessionDBUtils.initHibernate(config, props);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
- }
-
@Test
public void wrongProcessDefinition() throws IOException {
try (InputStream in = ProcessEngineTest.class.getResourceAsStream("/process/test/SampleProcessDefinition3.xml")) {
@@ -109,7 +101,7 @@ public class ProcessEngineTest {
((ProcessEngineImpl) pe).registerProcessDefinition(in);
Assert.fail();
- } catch (ProcessDefinitionParserException e) {
+ } catch (final ProcessDefinitionParserException e) {
Assert.assertTrue(e.getMessage().contains("Post-validation find an error in process definition"));
}
}
@@ -119,9 +111,9 @@ public class ProcessEngineTest {
@Test
public void testSampleProcess1() throws IOException, ProcessDefinitionParserException, ProcessExecutionException {
- TestRequestImpl testReq = new TestRequestImpl();
+ final TestRequestImpl testReq = new TestRequestImpl();
- String piId = pe.createProcessInstance("SampleProcess1");
+ final String piId = pe.createProcessInstance("SampleProcess1");
ProcessInstance pi = pe.getProcessInstance(piId);
assertEquals(NOT_STARTED, pi.getState());
@@ -139,7 +131,7 @@ public class ProcessEngineTest {
throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found.");
//assertEquals(ENDED, pi.getState());
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
// do nothing because processInstance should be already removed
}
@@ -148,9 +140,9 @@ public class ProcessEngineTest {
@Test
public void testSampleProcess2() throws IOException, ProcessDefinitionParserException, ProcessExecutionException {
- TestRequestImpl testReq = new TestRequestImpl();
+ final TestRequestImpl testReq = new TestRequestImpl();
- String piId = pe.createProcessInstance("SampleProcess2");
+ final String piId = pe.createProcessInstance("SampleProcess2");
ProcessInstance pi = pe.getProcessInstance(piId);
assertEquals(NOT_STARTED, pi.getState());
@@ -168,14 +160,64 @@ public class ProcessEngineTest {
throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found.");
//assertEquals(ENDED, pi.getState());
- } catch (IllegalArgumentException e) {
+ } catch (final IllegalArgumentException e) {
// do nothing because processInstance should be already removed
}
+
+ }
+
+ @Test
+ public void testSampleProcess4() throws IOException, ProcessDefinitionParserException, ProcessExecutionException {
+
+ final TestRequestImpl testReq = new TestRequestImpl();
+ testReq.setPendingReqId(RandomStringUtils.randomAlphanumeric(5));
-
+ final String piId = pe.createProcessInstance("SampleProcess4");
+ final ProcessInstance pi = pe.getProcessInstance(piId);
+ assertEquals(NOT_STARTED, pi.getState());
+
+ // start process
+ testReq.setProcessInstanceID(piId);
+ try {
+ pe.start(testReq);
+ Assert.fail("Task exception not handled");
+
+ } catch (final ProcessExecutionException e1) {
+ org.springframework.util.Assert.isInstanceOf(TaskExecutionException.class, e1.getCause(), "No TaskExecutionException");
+ Assert.assertEquals("Wrong error-msg", "jUnit Test", e1.getCause().getMessage());
+ Assert.assertEquals("Wrong pendingReqId", testReq.getPendingRequestId(), ((TaskExecutionException) e1.getCause()).getPendingRequestID());
+ org.springframework.util.Assert.isInstanceOf(RuntimeException.class, e1.getCause().getCause(), "Wrong Exception in TaskExecutionException");
+ }
+
+
}
+
+ @Test
+ public void testSampleProcess5() throws IOException, ProcessDefinitionParserException, ProcessExecutionException {
+ final TestRequestImpl testReq = new TestRequestImpl();
+
+ final String piId = pe.createProcessInstance("SampleProcess5");
+ ProcessInstance pi = pe.getProcessInstance(piId);
+ assertEquals(NOT_STARTED, pi.getState());
+
+ // start process
+ testReq.setProcessInstanceID(piId);
+ pe.start(testReq);
+
+ try {
+ pi = pe.getProcessInstance(piId);
+
+ } catch (final IllegalArgumentException e) {
+ Assert.assertTrue("wrong error-msg", e.getMessage().contains("does not/no longer exist."));
+ Assert.assertTrue("wrong process-instance-id", e.getMessage().contains(piId));
+
+ }
+
+
+ }
+
@Test(expected = IllegalArgumentException.class)
public void testProcessInstanceDoesNotExist() {
pe.getProcessInstance("does not exist");