diff options
| author | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-02-19 13:16:14 +0100 | 
|---|---|---|
| committer | Thomas Lenz <tlenz@iaik.tugraz.at> | 2016-02-19 13:16:14 +0100 | 
| commit | 3773f16dd15226cf1aba2c16d8a434457c1769c1 (patch) | |
| tree | ffb96e30e5ed1c39867bf6cd53ec46f3ae42bfa3 /id/server/idserverlib | |
| parent | f3010fd5d1d8e423ee6f2a1aaca5441ccfd3f785 (diff) | |
| download | moa-id-spss-3773f16dd15226cf1aba2c16d8a434457c1769c1.tar.gz moa-id-spss-3773f16dd15226cf1aba2c16d8a434457c1769c1.tar.bz2 moa-id-spss-3773f16dd15226cf1aba2c16d8a434457c1769c1.zip | |
update ProcessEngine jUnit tests
Diffstat (limited to 'id/server/idserverlib')
11 files changed, 102 insertions, 28 deletions
| diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/SpringExpressionAwareProcessEngineTest.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/SpringExpressionAwareProcessEngineTest.java index fe5928427..0732f1511 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/SpringExpressionAwareProcessEngineTest.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/SpringExpressionAwareProcessEngineTest.java @@ -1,7 +1,7 @@  package at.gv.egovernment.moa.id.process.spring.test; -import static at.gv.egovernment.moa.id.process.ProcessInstanceState.ENDED;  import static at.gv.egovernment.moa.id.process.ProcessInstanceState.NOT_STARTED; +import static at.gv.egovernment.moa.id.process.ProcessInstanceState.SUSPENDED;  import static org.junit.Assert.assertEquals;  import static org.junit.Assert.assertNotNull; @@ -20,6 +20,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils;  import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore; +import at.gv.egovernment.moa.id.module.test.TestRequestImpl;  import at.gv.egovernment.moa.id.process.ProcessDefinitionParserException;  import at.gv.egovernment.moa.id.process.ProcessEngine;  import at.gv.egovernment.moa.id.process.ProcessEngineImpl; @@ -88,30 +89,44 @@ public class SpringExpressionAwareProcessEngineTest {  	@Test  	public void testSampleProcessDefinitionWithExpression1() throws IOException, ProcessDefinitionParserException, ProcessExecutionException { +		TestRequestImpl req =  new TestRequestImpl(); +		  		String piId = pe.createProcessInstance("SampleProcessWithExpression1");  		ProcessInstance pi = pe.getProcessInstance(piId);  		assertEquals(NOT_STARTED, pi.getState());  		// start process -		pe.start(piId); -		pi = pe.getProcessInstance(piId); -		assertEquals(ENDED, pi.getState()); +		req.setProcessInstanceID(piId); +		pe.start(req); +		 +		//processInstance should be removed when it ends +		try { +			pi = pe.getProcessInstance(piId); +			throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found."); +			//assertEquals(ENDED, pi.getState()); +			 +		} catch (IllegalArgumentException e) { +			// do nothing because processInstance should be already removed  +			 +		}  	}  	@Test  	public void testSampleProcessDefinitionForSAML1Authentication() throws IOException, ProcessDefinitionParserException, ProcessExecutionException { +		TestRequestImpl req =  new TestRequestImpl(); +		  		String piId = pe.createProcessInstance("SampleProcessDefinitionForSAML1Authentication");  		ProcessInstance pi = pe.getProcessInstance(piId);  		assertEquals(NOT_STARTED, pi.getState());  		// start process -		pe.start(piId); -		pi = pe.getProcessInstance(piId); -		assertEquals(ENDED, pi.getState()); - +		req.setProcessInstanceID(piId); +		pe.start(req);		  		pi = pe.getProcessInstance(piId); +		assertEquals(SUSPENDED, pi.getState()); +		  		ExecutionContext ec = pi.getExecutionContext();  		assertNotNull(ec);  		System.out.println(ec.keySet()); @@ -122,6 +137,20 @@ public class SpringExpressionAwareProcessEngineTest {  		assertNotNull(ec.get("SignedAuthBlock"));  		assertNotNull(ec.get("isSignedAuthBlockValidated"));  		assertNotNull(ec.get("SAML1Assertion")); +		 +		pe.signal(req); +		try { +			pi = pe.getProcessInstance(piId); +			throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found."); +			//assertEquals(ENDED, pi.getState()); +			 +		} catch (IllegalArgumentException e) { +			// do nothing because processInstance should be already removed  +			 +		} + + +  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java index efec14f6b..005ad8bcc 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/CreateSAML1AssertionTask.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -41,7 +42,7 @@ public class CreateSAML1AssertionTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) throws TaskExecutionException { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) throws TaskExecutionException {  		Objects.requireNonNull(executionContext.get("IdentityLink"));  		assert (Boolean.TRUE.equals(Objects.requireNonNull(executionContext.get("isIdentityLinkValidated"))));  		Objects.requireNonNull(executionContext.get("SignedAuthBlock")); @@ -56,6 +57,7 @@ public class CreateSAML1AssertionTask implements Task {  			throw new TaskExecutionException(null, "", e);  		} +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java index 30499d009..6ba2f24e4 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/GetIdentityLinkTask.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -40,7 +41,7 @@ public class GetIdentityLinkTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) throws TaskExecutionException { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) throws TaskExecutionException {  		Objects.requireNonNull(executionContext.get("bkuURL"));  		log.debug("Using bkuURL in order to retrieve IdentityLink."); @@ -51,6 +52,8 @@ public class GetIdentityLinkTask implements Task {  		} catch (IOException e) {  			throw new TaskExecutionException(null, "", e);  		} +		 +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java index b571f0b9f..89b5a5e2a 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SelectBKUTask.java @@ -4,6 +4,7 @@ import org.slf4j.Logger;  import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -27,9 +28,10 @@ public class SelectBKUTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) {  		log.debug("Providing BKU selection.");  		executionContext.put("bkuURL", "https://127.0.0.1:3496/https-security-layer-request"); +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java index feba11a64..6c91c574c 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/SignAuthBlockTask.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -42,7 +43,7 @@ public class SignAuthBlockTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) throws TaskExecutionException { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) throws TaskExecutionException {  		Objects.requireNonNull(executionContext.get("IdentityLink"));  		assert (Boolean.TRUE.equals(Objects.requireNonNull(executionContext.get("isIdentityLinkValidated"))));  		Objects.requireNonNull(executionContext.get("bkuURL")); @@ -52,8 +53,9 @@ public class SignAuthBlockTask implements Task {  			executionContext.put("SignedAuthBlock", IOUtils.toString(in, Charset.forName("UTF-8")));  		} catch (IOException e) {  			throw new TaskExecutionException(null, "", e); -			 +						  		} +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java index aa5187ef5..766f9fadb 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateIdentityLinkTask.java @@ -6,6 +6,7 @@ import org.slf4j.Logger;  import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -33,12 +34,13 @@ public class ValidateIdentityLinkTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) {  		Objects.requireNonNull(executionContext.get("IdentityLink"));  		log.debug("Validating IdentityLink.");  		executionContext.put("isIdentityLinkValidated", true); +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java index c9127551e..7a4d5f70d 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/spring/test/task/ValidateSignedAuthBlockTask.java @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;  import org.springframework.stereotype.Service;  import at.gv.egovernment.moa.id.auth.modules.TaskExecutionException; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -36,7 +37,7 @@ public class ValidateSignedAuthBlockTask implements Task {  	private Logger log = LoggerFactory.getLogger(getClass());  	@Override -	public void execute(ExecutionContext executionContext) throws TaskExecutionException { +	public IRequest execute(IRequest penReq, ExecutionContext executionContext) throws TaskExecutionException {  		Objects.requireNonNull(executionContext.get("IdentityLink"));  		assert (Boolean.TRUE.equals(Objects.requireNonNull(executionContext.get("isIdentityLinkValidated"))));  		Objects.requireNonNull(executionContext.get("SignedAuthBlock")); @@ -44,6 +45,7 @@ public class ValidateSignedAuthBlockTask implements Task {  		log.debug("Using validated IdentityLink and signed auth block in order to validate signed auth block.");  		executionContext.put("isSignedAuthBlockValidated", true); +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java index 391506289..32e7bda2f 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HalloWeltTask.java @@ -2,6 +2,7 @@ package at.gv.egovernment.moa.id.process.test;  import org.springframework.stereotype.Service; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -15,8 +16,9 @@ import at.gv.egovernment.moa.id.process.api.Task;  public class HalloWeltTask implements Task {  	@Override -	public void execute(ExecutionContext executionContext) { +	public IRequest execute(IRequest pendingReq, ExecutionContext executionContext) {  		System.out.println("Hallo Welt"); +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java index 7e1f2e6f1..81fc32d24 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/HelloWorldTask.java @@ -2,6 +2,7 @@ package at.gv.egovernment.moa.id.process.test;  import org.springframework.stereotype.Service; +import at.gv.egovernment.moa.id.moduls.IRequest;  import at.gv.egovernment.moa.id.process.api.ExecutionContext;  import at.gv.egovernment.moa.id.process.api.Task; @@ -15,8 +16,9 @@ import at.gv.egovernment.moa.id.process.api.Task;  public class HelloWorldTask implements Task {  	@Override -	public void execute(ExecutionContext executionContext) { +	public IRequest execute(IRequest pendingReq, ExecutionContext executionContext) {  		System.out.println("Hello World"); +		return null;  	}  } diff --git a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/ProcessEngineTest.java b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/ProcessEngineTest.java index a0e5ceece..02fcaea4e 100644 --- a/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/ProcessEngineTest.java +++ b/id/server/idserverlib/src/test/java/at/gv/egovernment/moa/id/process/test/ProcessEngineTest.java @@ -1,6 +1,5 @@  package at.gv.egovernment.moa.id.process.test; -import static at.gv.egovernment.moa.id.process.ProcessInstanceState.ENDED;  import static at.gv.egovernment.moa.id.process.ProcessInstanceState.NOT_STARTED;  import static at.gv.egovernment.moa.id.process.ProcessInstanceState.SUSPENDED;  import static org.junit.Assert.assertEquals; @@ -20,6 +19,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  import at.gv.egovernment.moa.id.commons.db.MOASessionDBUtils;  import at.gv.egovernment.moa.id.commons.db.dao.session.InterfederationSessionStore; +import at.gv.egovernment.moa.id.module.test.TestRequestImpl;  import at.gv.egovernment.moa.id.process.ProcessDefinitionParser;  import at.gv.egovernment.moa.id.process.ProcessDefinitionParserException;  import at.gv.egovernment.moa.id.process.ProcessEngine; @@ -82,38 +82,62 @@ public class ProcessEngineTest {  	@Test  	public void testSampleProcess1() throws IOException, ProcessDefinitionParserException, ProcessExecutionException { - +		 +		TestRequestImpl testReq = new TestRequestImpl(); +		  		String piId = pe.createProcessInstance("SampleProcess1");  		ProcessInstance pi = pe.getProcessInstance(piId);  		assertEquals(NOT_STARTED, pi.getState());  		// start process -		pe.start(piId); +		testReq.setProcessInstanceID(piId); +		pe.start(testReq);  		pi = pe.getProcessInstance(piId);  		assertEquals(SUSPENDED, pi.getState());  		System.out.println("Do something asynchronously"); -		pe.signal(piId); -		pi = pe.getProcessInstance(piId); -		assertEquals(ENDED, pi.getState()); +		testReq.setProcessInstanceID(piId); +		pe.signal(testReq); +		try { +			pi = pe.getProcessInstance(piId); +			throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found."); +			//assertEquals(ENDED, pi.getState()); +			 +		} catch (IllegalArgumentException e) { +			// do nothing because processInstance should be already removed  +			 +		}  	}  	@Test  	public void testSampleProcess2() throws IOException, ProcessDefinitionParserException, ProcessExecutionException { +		TestRequestImpl testReq = new TestRequestImpl(); +		  		String piId = pe.createProcessInstance("SampleProcess2");  		ProcessInstance pi = pe.getProcessInstance(piId);  		assertEquals(NOT_STARTED, pi.getState());  		// start process -		pe.start(piId); +		testReq.setProcessInstanceID(piId); +		pe.start(testReq);  		pi = pe.getProcessInstance(piId);  		assertEquals(SUSPENDED, pi.getState());  		System.out.println("Do something asynchronously"); -		pe.signal(piId); -		pi = pe.getProcessInstance(piId); -		assertEquals(ENDED, pi.getState()); +		testReq.setProcessInstanceID(piId); +		pe.signal(testReq); +		try { +			pi = pe.getProcessInstance(piId); +			throw new ProcessExecutionException("ProcessInstance should be removed already, but it was found."); +			//assertEquals(ENDED, pi.getState()); +			 +		} catch (IllegalArgumentException e) { +			// do nothing because processInstance should be already removed  +			 +		} +		 +		  	}  	@Test(expected = IllegalArgumentException.class) diff --git a/id/server/idserverlib/src/test/resources/at/gv/egovernment/moa/id/process/spring/test/SampleProcessDefinitionForSAML1Authentication.xml b/id/server/idserverlib/src/test/resources/at/gv/egovernment/moa/id/process/spring/test/SampleProcessDefinitionForSAML1Authentication.xml index 6b84910bd..3ccc837fd 100644 --- a/id/server/idserverlib/src/test/resources/at/gv/egovernment/moa/id/process/spring/test/SampleProcessDefinitionForSAML1Authentication.xml +++ b/id/server/idserverlib/src/test/resources/at/gv/egovernment/moa/id/process/spring/test/SampleProcessDefinitionForSAML1Authentication.xml @@ -37,6 +37,8 @@  	-->  	<pd:Task id="createAssertionTask" class="CreateSAML1AssertionTask" /> +	<pd:Task id="task2" class="HelloWorldTask" async="true" /> +  	<pd:StartEvent id="start" />  	<pd:EndEvent id="end" /> @@ -49,6 +51,8 @@  	<pd:Transition from="signAuthBlockTask"           to="validateSignedAuthBlockTask" />  	<pd:Transition from="validateSignedAuthBlockTask" to="createAssertionTask"          conditionExpression="ctx['isSignedAuthBlockValidated']" /> -	<pd:Transition from="createAssertionTask" to="end" /> +	<pd:Transition from="createAssertionTask" to="task2" /> +	 +	<pd:Transition from="task2" to="end" />  </pd:ProcessDefinition> | 
