Class MockAction

java.lang.Object
org.springframework.webflow.test.MockAction
All Implemented Interfaces:
Action

public class MockAction extends Object implements Action
A trivial stub action implementation that can be parameterized to return a particular action execution result. Useful for simulating different action results a flow should be capable of responding to. Instances of this class can be conveniently installed in the bean factory that hosts the Web Flow action implementations in a test environment by overriding registerMockServices on AbstractExternalizedFlowExecutionTests. If you are using a XML-based flow definition with a flow-local context to host your actions, consider overriding registerLocalMockServices on AbstractXmlFlowExecutionTests to install mock instances.
Author:
Keith Donald
  • Constructor Details

    • MockAction

      public MockAction()
      Constructs a new mock action that returns the default success execution result.
    • MockAction

      public MockAction(String resultEventId)
      Constructs a new mock action that returns the provided execution result.
      Parameters:
      resultEventId - the execution result identifier that will be returned
  • Method Details

    • setResultEventId

      public void setResultEventId(String resultEventId)
      Sets the event identifier this mock action will use as its execution outcome.
      Parameters:
      resultEventId - the action execution result identifier
    • setResultAttributes

      public void setResultAttributes(AttributeMap<Object> resultAttributes)
      Sets attributes to associate with a returned action execution outcome.
      Parameters:
      resultAttributes - the action execution result attributes
    • execute

      public Event execute(RequestContext context)
      Description copied from interface: Action
      Execute this action. Action execution will occur in the context of a request associated with an active flow execution.

      Action invocation is typically triggered in a production environment by a state within a flow carrying out the execution of a flow definition. The result of action execution, a logical outcome event, can be used as grounds for a transition out of the calling state.

      Note: The RequestContext argument to this method provides access to data about the active flow execution in the context of the currently executing thread. Among other things, this allows this action to access data set by other actions, as well as set its own attributes it wishes to expose in a given scope.

      Some notes about actions and their usage of the attribute scope types:

      • Attributes set in request scope exist for the life of the currently executing request only.
      • Attributes set in flash scope exist until after view rendering is completed. That time includes the current request plus any redirect required for the view render to complete.
      • Attributes set in flow scope exist for the life of the flow session and will be cleaned up automatically when the flow session ends.
      • Attributes set in conversation scope exist for the life of the entire flow execution representing a single logical "conversation" with a user.

      All attributes present in any scope are typically exposed in a model for access by a view when an "interactive" state type such as a view state is entered.

      Note: flow scope should generally not be used as a general purpose cache, but rather as a context for data needed locally by other states of the flow this action participates in. For example, it would be inappropriate to stuff large collections of objects (like those returned to support a search results view) into flow scope. Instead, put such result collections in request scope, and ensure you execute this action again each time you wish to view those results. 2nd level caches managed outside of SWF are more general cache solutions.

      Note: as flow scoped attributes are eligible for serialization they should be Serializable.

      Specified by:
      execute in interface Action
      Parameters:
      context - the action execution context, for accessing and setting data in a scope type, as well as obtaining other flow contextual information (e.g. request context attributes and flow execution context information)
      Returns:
      a logical result outcome, used as grounds for a transition in the calling flow (e.g. "success", "error", "yes", "no", * ...)