InOrder
Date: 2015-09-18

org.mockito

## Interface InOrder

- All Known Implementing Classes:
    InOrderImpl

      public interface InOrder

  Allows verification in order. E.g:

       InOrder inOrder = inOrder(firstMock, secondMock);

       inOrder.verify(firstMock).add("was called first");
       inOrder.verify(secondMock).add("was called second");

  As of Mockito 1.8.4 you can verifyNoMoreInvocations() in order-sensitive way. Read more: `verifyNoMoreInteractions()`

  See examples in javadoc for `Mockito` class

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `<T> T` | `verify(T mock)` Verifies interaction happened once in order.
    `<T> T` | `verify(T mock, VerificationMode mode)` Verifies interaction in order.
    `void` | `verifyNoMoreInteractions()` Verifies that no more interactions happened in order.

- - ### Method Detail

    - #### verify

          <T> T verify(T mock)

      Verifies interaction happened once in order.

      Alias to `inOrder.verify(mock, times(1))`

      Example:

           InOrder inOrder = inOrder(firstMock, secondMock);

           inOrder.verify(firstMock).someMethod("was called first");
           inOrder.verify(secondMock).someMethod("was called second");

      See examples in javadoc for `Mockito` class
      Parameters:
        `mock` - to be verified
      Returns:
        mock object itself

    - #### verify

          <T> T verify(T mock,
                     VerificationMode mode)

      Verifies interaction in order. E.g:

           InOrder inOrder = inOrder(firstMock, secondMock);

           inOrder.verify(firstMock, times(2)).someMethod("was called first two times");
           inOrder.verify(secondMock, atLeastOnce()).someMethod("was called second at least once");

      See examples in javadoc for `Mockito` class
      Parameters:
        `mock` - to be verified
        `mode` - for example times(x) or atLeastOnce()
      Returns:
        mock object itself

    - #### verifyNoMoreInteractions

          void verifyNoMoreInteractions()

      Verifies that no more interactions happened in order. Different from `Mockito.verifyNoMoreInteractions(Object...)` because the order of verification matters.

      Example:

           mock.foo(); //1st
           mock.bar(); //2nd
           mock.baz(); //3rd

           InOrder inOrder = inOrder(mock);

           inOrder.verify(mock).bar(); //2n
           inOrder.verify(mock).baz(); //3rd (last method)

           //passes because there are no more interactions after last method:
           inOrder.verifyNoMoreInteractions();

           //however this fails because 1st method was not verified:
           Mockito.verifyNoMoreInteractions(mock);