MockClosureProxy (Grails 3.2.9)
Date: 2017-04-26

Package: grails.test

## [Java] Class MockClosureProxy

- grails.test.MockClosureProxy

- This closure proxy stores an expectation and checks it before each call to the target closure. It is used by the Grails mocking framework.

  Authors:
    Peter Ledbrook

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class groovy.lang.Closure` | `OWNER_FIRST, DELEGATE_FIRST, OWNER_ONLY, DELEGATE_ONLY, TO_SELF, DONE, SKIP, IDENTITY`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `MockClosureProxy (groovy.lang.Closure<?> target, java.lang.String methodName, java.lang.Object expectation)` Constructor.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `protected groovy.lang.Closure<?>` | `createWrapper(groovy.lang.Closure<?> c)` Creates a new `MockClosureProxy` wrapping the given closure.
    `` | `protected void` | `doAfterCall(java.lang.Object[] args)` Empty implementation.
    `` | `protected void` | `doBeforeCall(java.lang.Object[] args)` Checks whether the target "method" is expected or not, on the basis that this closure is mocking a method with the name `methodName`.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class AbstractClosureProxy` | `asWritable, call, createWrapper, curry, doAfterCall, doBeforeCall, equals, getDelegate, getDirective, getMaximumNumberOfParameters, getParameterTypes, getProperty, getResolveStrategy, hashCode, isCase, setDelegate, setDirective, setProperty, setResolveStrategy`
    `class groovy.lang.Closure` | `groovy.lang.Closure#run(), groovy.lang.Closure#setProperty(java.lang.String, java.lang.Object), groovy.lang.Closure#getProperty(java.lang.String), groovy.lang.Closure#clone(), groovy.lang.Closure#getParameterTypes(), groovy.lang.Closure#setDelegate(java.lang.Object), groovy.lang.Closure#getOwner(), groovy.lang.Closure#call([Ljava.lang.Object;), groovy.lang.Closure#call(java.lang.Object), groovy.lang.Closure#call(), groovy.lang.Closure#getMaximumNumberOfParameters(), groovy.lang.Closure#setResolveStrategy(int), groovy.lang.Closure#getResolveStrategy(), groovy.lang.Closure#getThisObject(), groovy.lang.Closure#getDelegate(), groovy.lang.Closure#getDirective(), groovy.lang.Closure#setDirective(int), groovy.lang.Closure#isCase(java.lang.Object), groovy.lang.Closure#asWritable(), groovy.lang.Closure#curry(java.lang.Object), groovy.lang.Closure#curry([Ljava.lang.Object;), groovy.lang.Closure#rcurry([Ljava.lang.Object;), groovy.lang.Closure#rcurry(java.lang.Object), groovy.lang.Closure#ncurry(int, [Ljava.lang.Object;), groovy.lang.Closure#ncurry(int, java.lang.Object), groovy.lang.Closure#rightShift(groovy.lang.Closure), groovy.lang.Closure#leftShift(groovy.lang.Closure), groovy.lang.Closure#leftShift(java.lang.Object), groovy.lang.Closure#memoize(), groovy.lang.Closure#memoizeAtMost(int), groovy.lang.Closure#memoizeAtLeast(int), groovy.lang.Closure#memoizeBetween(int, int), groovy.lang.Closure#trampoline(), groovy.lang.Closure#trampoline([Ljava.lang.Object;), groovy.lang.Closure#dehydrate(), groovy.lang.Closure#rehydrate(java.lang.Object, java.lang.Object, java.lang.Object), groovy.lang.Closure#getMetaClass(), groovy.lang.Closure#setMetaClass(groovy.lang.MetaClass), groovy.lang.Closure#invokeMethod(java.lang.String, java.lang.Object), groovy.lang.Closure#wait(long, int), groovy.lang.Closure#wait(long), groovy.lang.Closure#wait(), groovy.lang.Closure#equals(java.lang.Object), groovy.lang.Closure#toString(), groovy.lang.Closure#hashCode(), groovy.lang.Closure#getClass(), groovy.lang.Closure#notify(), groovy.lang.Closure#notifyAll()`

- - ### Constructor Detail

    - #### public MockClosureProxy(groovy.lang.Closure<?> target, java.lang.String methodName, java.lang.Object expectation)

      Constructor.

      Parameters:
        target
        methodName
        expectation

  - ### Method Detail

    - #### @java.lang.Override protected groovy.lang.Closure<?> createWrapper(groovy.lang.Closure<?> c)

      Creates a new `MockClosureProxy` wrapping the given closure.

      Parameters:
        `c` - The closure to wrap.
      Returns:
        the new proxy.

    - #### @java.lang.Override protected void doAfterCall(java.lang.Object[] args)

      Empty implementation.

      Parameters:
        `args` - The arguments to the target closure.

    - #### @java.lang.Override protected void doBeforeCall(java.lang.Object[] args)

      Checks whether the target "method" is expected or not, on the basis that this closure is mocking a method with the name `methodName`.

      Parameters:
        `args` - The arguments to the "method" (actually the argumetns to the target closure invocation).