RequestQueueTestpublic class RequestQueueTest extends android.test.InstrumentationTestCase
Fields Summary |
---|
private ResponseDelivery | mDelivery |
Methods Summary |
---|
private java.util.List | makeRequests(int count)Make a list of requests with random priorities.
Request.Priority[] allPriorities = Request.Priority.values();
Random random = new Random();
List<MockRequest> requests = new ArrayList<MockRequest>();
for (int i = 0; i < count; i++) {
MockRequest request = new MockRequest();
Request.Priority priority = allPriorities[random.nextInt(allPriorities.length)];
request.setCacheKey(String.valueOf(i));
request.setPriority(priority);
requests.add(request);
}
return requests;
| protected void | setUp()
super.setUp();
mDelivery = new ImmediateResponseDelivery();
| public void | testAdd_dedupeByCacheKey()
OrderCheckingNetwork network = new OrderCheckingNetwork();
final AtomicInteger parsed = new AtomicInteger();
final AtomicInteger delivered = new AtomicInteger();
// Enqueue 2 requests with the same cache key. The first request takes 1.5s. Assert that the
// second request is only handled after the first one has been parsed and delivered.
DelayedRequest req1 = new DelayedRequest(1500, parsed, delivered);
DelayedRequest req2 = new DelayedRequest(0, parsed, delivered) {
@Override
protected Response<Object> parseNetworkResponse(NetworkResponse response) {
assertEquals(1, parsed.get()); // req1 must have been parsed.
assertEquals(1, delivered.get()); // req1 must have been parsed.
return super.parseNetworkResponse(response);
}
};
network.setExpectedRequests(2);
RequestQueue queue = new RequestQueue(new NoCache(), network, 3, mDelivery);
queue.add(req1);
queue.add(req2);
queue.start();
network.waitUntilExpectedDone(2000);
queue.stop();
| public void | testAdd_requestProcessedInCorrectOrder()
int requestsToMake = 100;
OrderCheckingNetwork network = new OrderCheckingNetwork();
RequestQueue queue = new RequestQueue(new NoCache(), network, 1, mDelivery);
for (Request<?> request : makeRequests(requestsToMake)) {
queue.add(request);
}
network.setExpectedRequests(requestsToMake);
queue.start();
network.waitUntilExpectedDone(2000); // 2 seconds
queue.stop();
| public void | testCancelAll_onlyCorrectTag()
MockNetwork network = new MockNetwork();
RequestQueue queue = new RequestQueue(new NoCache(), network, 3, mDelivery);
Object tagA = new Object();
Object tagB = new Object();
MockRequest req1 = new MockRequest();
req1.setTag(tagA);
MockRequest req2 = new MockRequest();
req2.setTag(tagB);
MockRequest req3 = new MockRequest();
req3.setTag(tagA);
MockRequest req4 = new MockRequest();
req4.setTag(tagA);
queue.add(req1); // A
queue.add(req2); // B
queue.add(req3); // A
queue.cancelAll(tagA);
queue.add(req4); // A
assertTrue(req1.cancel_called); // A cancelled
assertFalse(req2.cancel_called); // B not cancelled
assertTrue(req3.cancel_called); // A cancelled
assertFalse(req4.cancel_called); // A added after cancel not cancelled
|
|