@Test
public void shouldDeliverFinalSuccessResponse() {

    Object response = new Object();
    BallResponse.ResponseSource responseSource = BallResponse.ResponseSource.NETWORK; // or cache, whatever
    when(mRequest.isIntermediateResponseDelivered()).thenReturn(true);
    when(mResponse.isIntermediate()).thenReturn(false);
    when(mResponse.isSuccess()).thenReturn(true);
    when(mResponse.isIdentical()).thenReturn(false);
    when(mResponse.getResult()).thenReturn(response);
    when(mResponse.getResponseSource()).thenReturn(responseSource); // or cache, whatever
    mResponseDelivery.postResponse(mRequest, mResponse);
    verify(mRequest).setFinalResponseDelivered(true);
    verify(mRequest).deliverFinalResponse(response, responseSource);
    verify(mRequest, new LastInteraction()).finish(String.format(BallExecutorDelivery.MARKER_DONE_WITH_RESPONSE_FROM, mResponse.getResponseSource().toString().toLowerCase()));
}