package org.robolectric.shadows;
import android.net.http.HttpResponseCache;
import java.io.File;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.TestRunners;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowHttpResponseCacheTest {
@Before
public void setUp() {
// If someone else installed a cache, clear it.
ShadowHttpResponseCache.installed = null;
}
@After
public void tearDown() {
// Ensure we don't leak an installed cache from a test.
ShadowHttpResponseCache.installed = null;
}
@Test
public void installedCacheIsReturned() throws Exception {
assertThat(HttpResponseCache.getInstalled()).isNull();
HttpResponseCache cache = HttpResponseCache.install(File.createTempFile("foo", "bar"), 42);
HttpResponseCache installed = HttpResponseCache.getInstalled();
assertThat(installed).isSameAs(cache);
assertThat(installed.maxSize()).isEqualTo(42);
}
@Test
public void countsStartAtZero() throws Exception {
HttpResponseCache cache = HttpResponseCache.install(File.createTempFile("foo", "bar"), 42);
assertThat(cache.getHitCount()).isZero();
assertThat(cache.getNetworkCount()).isZero();
assertThat(cache.getRequestCount()).isZero();
}
@Test
public void deleteRemovesReference() throws Exception {
HttpResponseCache cache = HttpResponseCache.install(File.createTempFile("foo", "bar"), 42);
cache.delete();
assertThat(HttpResponseCache.getInstalled()).isNull();
}
@Test
public void closeRemovesReference() throws Exception {
HttpResponseCache cache = HttpResponseCache.install(File.createTempFile("foo", "bar"), 42);
cache.close();
assertThat(HttpResponseCache.getInstalled()).isNull();
}
}