public abstract class AbstractFlowExecutionTests
extends junit.framework.TestCase
A typical flow execution test case will test:
startFlow(MutableAttributeMap, ExternalContext)
).
resumeFlow(ExternalContext)
variants and the
setCurrentState(String)
for more information).
A flow execution test can effectively automate and validate the orchestration required to drive an end-to-end business task that spans several steps involving the user to complete. Such tests are a good way to test your system top-down starting at the web-tier and pushing through all the way to the DB without having to deploy to a servlet or portlet container. In addition, they can be used to effectively test a flow's execution (the web layer) standalone, typically with a mock service layer.
Constructor and Description |
---|
AbstractFlowExecutionTests()
Constructs a default flow execution test.
|
AbstractFlowExecutionTests(java.lang.String name)
Constructs a flow execution test with given name.
|
Modifier and Type | Method and Description |
---|---|
protected void |
assertActiveFlowEquals(java.lang.String expectedActiveFlowId)
Assert that the active flow session is for the flow with the provided id.
|
protected void |
assertCurrentStateEquals(java.lang.String expectedCurrentStateId)
Assert that the current state of the flow execution equals the provided state id.
|
protected void |
assertFlowExecutionActive()
Assert that the entire flow execution is active; that is, it has not ended and has been started.
|
protected void |
assertFlowExecutionEnded()
Assert that the flow execution has ended; that is, it is no longer active.
|
protected void |
assertFlowExecutionOutcomeEquals(java.lang.String outcome)
Assert that the flow execution has ended with the outcome specified.
|
protected void |
assertResponseWrittenEquals(java.lang.String response,
MockExternalContext context)
Assert that the response written to the mock context equals the response provided.
|
protected FlowExecutionFactory |
createFlowExecutionFactory()
Factory method to create the flow execution factory.
|
protected java.lang.Object |
getConversationAttribute(java.lang.String attributeName)
Returns the attribute in conversation scope.
|
protected MutableAttributeMap |
getConversationScope()
Returns conversation scope.
|
protected java.lang.Object |
getFlowAttribute(java.lang.String attributeName)
Returns the attribute in flow scope.
|
protected abstract FlowDefinition |
getFlowDefinition()
Returns the flow definition to be tested.
|
protected FlowExecution |
getFlowExecution()
Returns the flow execution being tested.
|
protected FlowExecutionFactory |
getFlowExecutionFactory()
Gets the factory that will create the flow execution to test.
|
protected FlowExecutionOutcome |
getFlowExecutionOutcome()
Returns the flow execution outcome that was reached.
|
protected MutableAttributeMap |
getFlowScope()
Returns flow scope.
|
protected java.lang.Object |
getRequiredConversationAttribute(java.lang.String attributeName)
Returns the required attribute in conversation scope; asserts the attribute is present.
|
protected java.lang.Object |
getRequiredConversationAttribute(java.lang.String attributeName,
java.lang.Class requiredType)
Returns the required attribute in conversation scope; asserts the attribute is present and of the required type.
|
protected java.lang.Object |
getRequiredFlowAttribute(java.lang.String attributeName)
Returns the required attribute in flow scope; asserts the attribute is present.
|
protected java.lang.Object |
getRequiredFlowAttribute(java.lang.String attributeName,
java.lang.Class requiredType)
Returns the required attribute in flow scope; asserts the attribute is present and of the correct type.
|
protected java.lang.Object |
getRequiredViewAttribute(java.lang.String attributeName)
Returns the required attribute in view scope; asserts the attribute is present.
|
protected java.lang.Object |
getRequiredViewAttribute(java.lang.String attributeName,
java.lang.Class requiredType)
Returns the required attribute in view scope; asserts the attribute is present and of the correct type.
|
protected java.lang.Object |
getViewAttribute(java.lang.String attributeName)
Returns the attribute in view scope.
|
protected MutableAttributeMap |
getViewScope()
Returns view scope.
|
protected void |
resumeFlow(ExternalContext context)
Resume the flow execution to be tested.
|
protected void |
setCurrentState(java.lang.String stateId)
Sets the current state of the flow execution being tested.
|
protected void |
startFlow(ExternalContext context)
Start the flow execution to be tested.
|
protected void |
startFlow(MutableAttributeMap input,
ExternalContext context)
Start the flow execution to be tested.
|
protected void |
updateFlowExecution(FlowExecution flowExecution)
Directly update the flow execution used by the test by setting it to given flow execution.
|
countTestCases, createResult, getName, run, run, runBare, runTest, setName, setUp, tearDown, toString
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
public AbstractFlowExecutionTests()
TestCase.setName(String)
public AbstractFlowExecutionTests(java.lang.String name)
name
- the name of the testprotected FlowExecutionFactory getFlowExecutionFactory()
createFlowExecutionFactory()
protected void startFlow(ExternalContext context) throws FlowExecutionException
context
- the external context providing information about the caller's environment, used by the flow
execution during the start operationFlowExecutionException
- if an exception was thrown while starting the flow executionprotected void startFlow(MutableAttributeMap input, ExternalContext context) throws FlowExecutionException
input
- input to pass the flowcontext
- the external context providing information about the caller's environment, used by the flow
execution during the start operationFlowExecutionException
- if an exception was thrown while starting the flow executionprotected void resumeFlow(ExternalContext context) throws FlowExecutionException
context
- the external context providing information about the caller's environment, used by the flow
execution during the start operationFlowExecutionException
- if an exception was thrown while starting the flow executionprotected void setCurrentState(java.lang.String stateId)
stateId
- the state idprotected FlowExecution getFlowExecution() throws java.lang.IllegalStateException
java.lang.IllegalStateException
- the execution has not been startedprotected FlowExecutionOutcome getFlowExecutionOutcome()
protected MutableAttributeMap getViewScope() throws java.lang.IllegalStateException
java.lang.IllegalStateException
protected MutableAttributeMap getFlowScope() throws java.lang.IllegalStateException
java.lang.IllegalStateException
protected MutableAttributeMap getConversationScope() throws java.lang.IllegalStateException
java.lang.IllegalStateException
protected java.lang.Object getViewAttribute(java.lang.String attributeName)
attributeName
- the name of the attributeprotected java.lang.Object getRequiredViewAttribute(java.lang.String attributeName) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not presentprotected java.lang.Object getRequiredViewAttribute(java.lang.String attributeName, java.lang.Class requiredType) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not present or was of the wrong typeprotected java.lang.Object getFlowAttribute(java.lang.String attributeName)
attributeName
- the name of the attributeprotected java.lang.Object getRequiredFlowAttribute(java.lang.String attributeName) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not presentprotected java.lang.Object getRequiredFlowAttribute(java.lang.String attributeName, java.lang.Class requiredType) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not present or was of the wrong typeprotected java.lang.Object getConversationAttribute(java.lang.String attributeName)
attributeName
- the name of the attributeprotected java.lang.Object getRequiredConversationAttribute(java.lang.String attributeName) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not presentprotected java.lang.Object getRequiredConversationAttribute(java.lang.String attributeName, java.lang.Class requiredType) throws java.lang.IllegalStateException
attributeName
- the name of the attributejava.lang.IllegalStateException
- if the attribute was not present or not of the required typeprotected void assertFlowExecutionActive()
protected void assertActiveFlowEquals(java.lang.String expectedActiveFlowId)
expectedActiveFlowId
- the flow id that should have a session active in the tested flow executionprotected void assertFlowExecutionEnded()
protected void assertFlowExecutionOutcomeEquals(java.lang.String outcome)
outcome
- the name of the flow execution outcomeprotected void assertCurrentStateEquals(java.lang.String expectedCurrentStateId)
expectedCurrentStateId
- the expected current stateprotected void assertResponseWrittenEquals(java.lang.String response, MockExternalContext context)
response
- the expected responsecontext
- the mock external context that was written toprotected FlowExecutionFactory createFlowExecutionFactory()
FlowExecutionImplFactory
instance.protected void updateFlowExecution(FlowExecution flowExecution)
flowExecution
- the flow execution to useprotected abstract FlowDefinition getFlowDefinition()