diff options
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.java | 96 |
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"); |