@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(); }
@Test public void cancelledRequest() throws Exception { mRequest.cancel(); mCacheQueue.add(mRequest); mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mCache.getCalled); assertFalse(mDelivery.wasEitherResponseCalled()); }
@Test public void shouldCacheFalse() throws Exception { mRequest.setShouldCache(false); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mCache.putCalled); }
@Test public void expiredCacheHit() throws Exception { Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, true, true); mCache.setEntryToReturn(entry); mCacheQueue.add(mRequest); mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mDelivery.wasEitherResponseCalled()); assertTrue(mNetworkQueue.size() > 0); Request request = mNetworkQueue.take(); assertSame(entry, request.getCacheEntry()); } }
@Test public void shouldCacheTrue() throws Exception { mNetwork.setDataToReturn(CANNED_DATA); mRequest.setShouldCache(true); mRequest.setCacheKey("bananaphone"); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertTrue(mCache.putCalled); assertNotNull(mCache.entryPut); assertTrue(Arrays.equals(mCache.entryPut.data, CANNED_DATA)); assertEquals("bananaphone", mCache.keyPut); } }
@Test public void connectionForPostWithBodyRequest() throws Exception { TestRequest.PostWithBody request = new TestRequest.PostWithBody(); assertEquals(request.getMethod(), Method.POST); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("POST", mMockConnection.getRequestMethod()); assertTrue(mMockConnection.getDoOutput()); }
@Test public void connectionForPutRequest() throws Exception { TestRequest.Put request = new TestRequest.Put(); assertEquals(request.getMethod(), Method.PUT); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("PUT", mMockConnection.getRequestMethod()); assertFalse(mMockConnection.getDoOutput()); }
@Test public void connectionForDeleteRequest() throws Exception { TestRequest.Delete request = new TestRequest.Delete(); assertEquals(request.getMethod(), Method.DELETE); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("DELETE", mMockConnection.getRequestMethod()); assertFalse(mMockConnection.getDoOutput()); }
@Test public void connectionForTraceRequest() throws Exception { TestRequest.Trace request = new TestRequest.Trace(); assertEquals(request.getMethod(), Method.TRACE); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("TRACE", mMockConnection.getRequestMethod()); assertFalse(mMockConnection.getDoOutput()); }
@Test public void connectionForDeprecatedPostRequest() throws Exception { TestRequest.DeprecatedPost request = new TestRequest.DeprecatedPost(); assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("POST", mMockConnection.getRequestMethod()); assertTrue(mMockConnection.getDoOutput()); }
@Test public void connectionForPostRequest() throws Exception { TestRequest.Post request = new TestRequest.Post(); assertEquals(request.getMethod(), Method.POST); HurlStack.setConnectionParametersForRequest(mMockConnection, request); assertEquals("POST", mMockConnection.getRequestMethod()); assertFalse(mMockConnection.getDoOutput()); }
@Test public void exceptionPostsError() throws Exception { mNetwork.setNumExceptionsToThrow(MockNetwork.ALWAYS_THROW_EXCEPTIONS); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mDelivery.postResponse_called); assertTrue(mDelivery.postError_called); }
@Before public void setUp() throws Exception { mCacheQueue = new WaitableQueue(); mNetworkQueue = new WaitableQueue(); mCache = new MockCache(); mDelivery = new MockResponseDelivery(); mRequest = new MockRequest(); mDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue, mCache, mDelivery); mDispatcher.start(); }
@Test public void cacheMiss() throws Exception { mCacheQueue.add(mRequest); mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mDelivery.wasEitherResponseCalled()); assertTrue(mNetworkQueue.size() > 0); Request request = mNetworkQueue.take(); assertNull(request.getCacheEntry()); }
@Test public void shouldCacheTrue() throws Exception { mNetwork.setDataToReturn(CANNED_DATA); mRequest.setShouldCache(true); mRequest.setCacheKey("bananaphone"); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertTrue(mCache.putCalled); assertNotNull(mCache.entryPut); assertTrue(Arrays.equals(mCache.entryPut.data, CANNED_DATA)); assertEquals("bananaphone", mCache.keyPut); } }
@Test public void cancelledRequest() throws Exception { mRequest.cancel(); mCacheQueue.add(mRequest); mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mCache.getCalled); assertFalse(mDelivery.wasEitherResponseCalled()); }
@Test public void shouldCacheFalse() throws Exception { mRequest.setShouldCache(false); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mCache.putCalled); }
@Test public void exceptionPostsError() throws Exception { mNetwork.setNumExceptionsToThrow(MockNetwork.ALWAYS_THROW_EXCEPTIONS); mNetworkQueue.add(mRequest); mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS); assertFalse(mDelivery.postResponse_called); assertTrue(mDelivery.postError_called); }
@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(); }
@Before public void setUp() throws Exception { mCacheQueue = new WaitableQueue(); mNetworkQueue = new WaitableQueue(); mCache = new MockCache(); mDelivery = new MockResponseDelivery(); mRequest = new MockRequest(); mDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue, mCache, mDelivery); mDispatcher.start(); }