@Test
public void shouldPostEmptyIntermediateResponseAndAddMarkerLog() {

    final BallResponse.ResponseSource responseSource = BallResponse.ResponseSource.LOCAL; // or cache, whatever
    Executor executorMock = mock(Executor.class);
    BallResponseDelivery responseDelivery = new BallExecutorDelivery(executorMock);
    doNothing().when(executorMock).execute(any(Runnable.class));
    responseDelivery.postEmptyIntermediateResponse(mRequest, responseSource);
    verify(mRequest).addMarker(BallExecutorDelivery.MARKER_POST_EMPTY_INTERMEDIATE_RESPONSE);
    verify(executorMock).execute(argThat(new ArgumentMatcher<Runnable>() {
        @Override
        public boolean matches(Object argument) {
            BallExecutorDelivery.EmptyIntermediateDeliveryRunnable r = (BallExecutorDelivery.EmptyIntermediateDeliveryRunnable) argument;
            return r.mRequest == mRequest && r.mResponseSource == responseSource;
        }
    }));
    verifyNoMoreInteractions(mRequest);
}