Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jmock.lib.script
Class ScriptedAction

    java.lang.Object
      org.jmock.lib.script.ScriptedAction

All Implemented Interfaces:
  SelfDescribing, Action, Invokable

    public class ScriptedAction

extends Object
implements Action

An `Action` that executes a BeanShell script. This makes it easy to implement custom actions, especially those that call back to objects passed to the mocked method as parameters.

To use a scripted action in an expectation, statically import the `perform` method and call it within the `will(...)` clause of the expectation.

The script can refer to the parameters of the mocked method by the names $0 (the first parameter), $1, $2, etc, and to the mock object that has been invoked by the name $this. You can define other script variables by calling the action's `where` method.

For example:

     allowing (sheep).accept(with(a(Visitor.class)));
         will(perform("$0.visitSheep($this)");

is equivalent to:

     allowing (sheep).accept(with(a(Visitor.class)));
         will(perform("$0.visitSheep(s)").where("s", sheep);

Author:
  nat

Constructor Summary
`ScriptedAction(String expression)`

Method Summary
`void` | `describeTo(Description description)` Generates a description of the object.
`Object` | `invoke(Invocation invocation)` Performs an action in response to an invocation.
`static ScriptedAction` | `perform(String script)` Creates an action that performs the given script.
`ScriptedAction` | `where(String name, Object value)` Defines a variable that can be referred to by the script.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### ScriptedAction

    public ScriptedAction(String expression)

Method Detail

### invoke

    public Object invoke(Invocation invocation)
                  throws Throwable

  Description copied from interface: `Invokable`
  Performs an action in response to an invocation.

  Specified by:
    `invoke` in interface `Invokable`
  Parameters:
    `invocation` - The invocation to perform.
  Returns:
    The result of the invocation, if not throwing an exception. Must return `null` if the invoked method has a void return type.
  Throws:
    `Throwable` - An exception to be thrown to the caller, if not returning a value. Any checked exception thrown must be in the `throws` list of the invoked method.

### describeTo

    public void describeTo(Description description)

  Description copied from interface: `SelfDescribing`
  Generates a description of the object. The description may be part of a a description of a larger object of which this is just a component, so it should be worded appropriately.

  Specified by:
    `describeTo` in interface `SelfDescribing`
  Parameters:
    `description` - The description to be built or appended to.

### perform

    public static ScriptedAction perform(String script)

  Creates an action that performs the given script.

  Parameters:
    `script` - a BeanShell script.
  Returns:
    the new action.

### where

    public ScriptedAction where(String name,
                                Object value)

  Defines a variable that can be referred to by the script.

  Parameters:
    `name` - the name of the variable
    `value` - the value of the variable
  Returns:
    the action, so that more variables can be defined if needed

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD