use of com.android.volley.mock.MockRequest in project TaEmCasa by Dionen.
the class NetworkDispatcherTest method setUp.
@Before
public void setUp() throws Exception {
mDelivery = new MockResponseDelivery();
mNetworkQueue = new WaitableQueue();
mNetwork = new MockNetwork();
mCache = new MockCache();
mRequest = new MockRequest();
mDispatcher = new NetworkDispatcher(mNetworkQueue, mNetwork, mCache, mDelivery);
mDispatcher.start();
}
use of com.android.volley.mock.MockRequest in project TaEmCasa by Dionen.
the class RequestQueueIntegrationTest method add_requestProcessedInCorrectOrder.
@Test
public void add_requestProcessedInCorrectOrder() throws Exception {
// Enqueue 2 requests with different cache keys, and different priorities. The second, higher priority request
// takes 20ms.
// Assert that first request is only handled after the first one has been parsed and delivered.
MockRequest lowerPriorityReq = new MockRequest();
MockRequest higherPriorityReq = new MockRequest();
lowerPriorityReq.setCacheKey("1");
higherPriorityReq.setCacheKey("2");
lowerPriorityReq.setPriority(Priority.LOW);
higherPriorityReq.setPriority(Priority.HIGH);
RequestFinishedListener listener = mock(RequestFinishedListener.class);
Answer<NetworkResponse> delayAnswer = new Answer<NetworkResponse>() {
@Override
public NetworkResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
Thread.sleep(20);
return mock(NetworkResponse.class);
}
};
//delay only for higher request
when(mMockNetwork.performRequest(higherPriorityReq)).thenAnswer(delayAnswer);
when(mMockNetwork.performRequest(lowerPriorityReq)).thenReturn(mock(NetworkResponse.class));
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
queue.addRequestFinishedListener(listener);
queue.add(lowerPriorityReq);
queue.add(higherPriorityReq);
queue.start();
// you cannot do strict order verification in combination with timeouts with mockito 1.9.5 :(
// as an alternative, first verify no requests have finished, while higherPriorityReq should be processing
verifyNoMoreInteractions(listener);
// verify higherPriorityReq goes through first
verify(listener, timeout(100)).onRequestFinished(higherPriorityReq);
// verify lowerPriorityReq goes last
verify(listener, timeout(10)).onRequestFinished(lowerPriorityReq);
queue.stop();
}
use of com.android.volley.mock.MockRequest in project TaEmCasa by Dionen.
the class RequestQueueIntegrationTest method add_requestFinishedListenerCanceled.
/**
* Verify RequestFinishedListeners are informed when requests are canceled
*
* Needs to be an integration test because relies on Request -> dispatcher -> RequestQueue interaction
*/
@Test
public void add_requestFinishedListenerCanceled() throws Exception {
RequestFinishedListener listener = mock(RequestFinishedListener.class);
Request request = new MockRequest();
Answer<NetworkResponse> delayAnswer = new Answer<NetworkResponse>() {
@Override
public NetworkResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
Thread.sleep(200);
return mock(NetworkResponse.class);
}
};
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
when(mMockNetwork.performRequest(request)).thenAnswer(delayAnswer);
queue.addRequestFinishedListener(listener);
queue.start();
queue.add(request);
request.cancel();
verify(listener, timeout(100)).onRequestFinished(request);
queue.stop();
}
use of com.android.volley.mock.MockRequest in project TaEmCasa by Dionen.
the class RequestQueueIntegrationTest method add_requestFinishedListenerError.
/**
* Verify RequestFinishedListeners are informed when request errors
*
* Needs to be an integration test because relies on Request -> dispatcher -> RequestQueue interaction
*/
@Test
public void add_requestFinishedListenerError() throws Exception {
RequestFinishedListener listener = mock(RequestFinishedListener.class);
Request request = new MockRequest();
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
when(mMockNetwork.performRequest(request)).thenThrow(new VolleyError());
queue.addRequestFinishedListener(listener);
queue.start();
queue.add(request);
verify(listener, timeout(100)).onRequestFinished(request);
queue.stop();
}
Aggregations