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

## org.mockito.internal.configuration.injection
Class MockInjectionStrategy

    java.lang.Object
      org.mockito.internal.configuration.injection.MockInjectionStrategy

Direct Known Subclasses:
  ConstructorInjection, PropertyAndSetterInjection, SpyOnInjectedFieldsHandler

    public abstract class MockInjectionStrategy

extends java.lang.Object

Injector strategy contract

Constructor Summary
`MockInjectionStrategy()`

Method Summary
`static MockInjectionStrategy` | `nop()` NOP Strategy that will always try the next strategy.
`boolean` | `process(java.lang.reflect.Field onField, java.lang.Object fieldOwnedBy, java.util.Set<java.lang.Object> mockCandidates)` Actually inject mockCandidates on field.
`protected abstract boolean` | `processInjection(java.lang.reflect.Field field, java.lang.Object fieldOwner, java.util.Set<java.lang.Object> mockCandidates)` Process actual injection.
`MockInjectionStrategy` | `thenTry(MockInjectionStrategy strategy)` Enqueue next injection strategy.

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

Constructor Detail

### MockInjectionStrategy

    public MockInjectionStrategy()

Method Detail

### nop

    public static final MockInjectionStrategy nop()

  NOP Strategy that will always try the next strategy.

### thenTry

    public MockInjectionStrategy thenTry(MockInjectionStrategy strategy)

  Enqueue next injection strategy.

  The implementation should take care of the actual calling if required.

  Parameters:
    `strategy` - Queued strategy.
  Returns:
    The passed strategy instance to allow chaining.

### process

    public boolean process(java.lang.reflect.Field onField,
                           java.lang.Object fieldOwnedBy,
                           java.util.Set<java.lang.Object> mockCandidates)

  Actually inject mockCandidates on field.

  Actual algorithm is defined in the implementations of `processInjection(Field, Object, Set)`. However if injection occurred successfully, the process should return `true`, and `false` otherwise.

  The code takes care of calling the next strategy if available and if of course if required

  Parameters:
    `onField` - Field needing injection.
    `fieldOwnedBy` - The owning instance of the field.
    `mockCandidates` - A set of mock candidate, that might be injected.
  Returns:
    `true` if successful, `false` otherwise.

### processInjection

    protected abstract boolean processInjection(java.lang.reflect.Field field,
                                                java.lang.Object fieldOwner,
                                                java.util.Set<java.lang.Object> mockCandidates)

  Process actual injection.

  Don't call this method directly, instead call `process(Field, Object, Set)`

  Parameters:
    `field` - Field needing injection
    `fieldOwner` - Field owner instance.
    `mockCandidates` - Pool of mocks to inject.
  Returns:
    `true` if injection occurred, `false` otherwise

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