org.jmock.api

## Interface Expectation

All Superinterfaces:
  SelfDescribing

    public interface Expectation
    extends SelfDescribing

An object that matches, checks and fakes an `Invocation`

Author:
  npryce, smgf

### Method Summary

Methods
`boolean` `allowsMoreInvocations()` Can more `Invocation`s expected by this Expectation still occur?
`void` `describeMismatch(Invocation invocation, Description description)`
`Object` `invoke(Invocation invocation)` Invokes the expectation: records that the invocation has occurred and fakes some behaviour in response.
`boolean` `isSatisfied()` Have enough `Invocation`s expected by this Expectation occurred?
`boolean` `matches(Invocation invocation)` Can the Expectation be invoked with invocation?

### Methods inherited from interface org.hamcrest.SelfDescribing

`describeTo`

### Method Detail

#### isSatisfied

    boolean isSatisfied()

Have enough `Invocation`s expected by this Expectation occurred?

Returns:
  `true` if the expectation has received enough of its expected invocations, `false` otherwise.

#### allowsMoreInvocations

    boolean allowsMoreInvocations()

Can more `Invocation`s expected by this Expectation still occur?

Returns:
  `true` if invocations expected by this expectation can still occur, `false` otherwise.

#### matches

    boolean matches(Invocation invocation)

Can the Expectation be invoked with invocation?

Parameters:
  `invocation` -
Returns:
  `true` if the expectation can be invoked with invocation, `false` otherwise.

#### describeMismatch

    void describeMismatch(Invocation invocation,
                        Description description)

#### invoke

    Object invoke(Invocation invocation)
                  throws Throwable

Invokes the expectation: records that the invocation has occurred and fakes some behaviour in response.

Parameters:
  `invocation` - The invocation to record and fake.
Returns:
  A result that is eventually returned from the method call that caused the invocation.
Throws:
  `Throwable` - An exception that is eventually thrown from the method call that caused the invocation.
  `IllegalStateException` - The expectation has been invoked with a method that it doesn't match or the faked behaviour has been set up incorrectly. For example, IllegalStateException is thrown when trying to return a value or throw a checked exception that is incompatible with the return type of the method being mocked