@Test public void initializeCache_withValidContext_shouldCreateNewCachesIdempotently() throws Exception { assertThat(CacheService.getDiskLruCache()).isNull(); CacheService.initialize(context); DiskLruCache diskLruCache = CacheService.getDiskLruCache(); assertThat(diskLruCache).isNotNull(); CacheService.initialize(context); assertThat(diskLruCache).isEqualTo(CacheService.getDiskLruCache()); }
@Test public void diskLruCacheAsyncPut_whenEmpty_shouldReturnNull() throws Exception { CacheService.initialize(context); CacheService.putToDiskCacheAsync(key1, data1.getBytes()); Thread.sleep(500); assertThat(CacheService.getFromDiskCache(key1)).isEqualTo(data1.getBytes()); }
@Test public void diskLruCachePut_withEmptyStringKey_shouldPutCorrectly() throws Exception { // this works because an empty string sha1 hashes to a valid key CacheService.initialize(context); CacheService.putToDiskCache("", data1.getBytes()); assertThat(CacheService.getFromDiskCache("")).isEqualTo(data1.getBytes()); }
@Test public void diskLruCachePut_withNullKey_shouldNotPut() throws Exception { // null value produces empty string key which is invalid for disk lru cache CacheService.initialize(context); assertCachesAreEmpty(); CacheService.putToDiskCache(null, data1.getBytes()); assertCachesAreEmpty(); }
@Test public void diskLruCacheAsyncGet_whenEmpty_shouldReturnNull() throws Exception { CacheService.initialize(context); CacheService.getFromDiskCacheAsync(key1, diskCacheGetListener); semaphore.acquire(); assertThat(getKey).isEqualTo(key1); assertThat(getBytes).isNull(); }
@Test public void diskLruCacheAsyncGet_whenPopulated_shouldReturnValue() throws Exception { CacheService.initialize(context); assertCachesAreEmpty(); CacheService.putToDiskCache(key1, data1.getBytes()); CacheService.getFromDiskCacheAsync(key1, diskCacheGetListener); semaphore.acquire(); assertThat(getKey).isEqualTo(key1); assertThat(getBytes).isEqualTo(data1.getBytes()); }
@Test public void diskLruCacheGet_whenEmpty_shouldReturnNull() throws Exception { CacheService.initialize(context); assertCachesAreEmpty(); assertThat(CacheService.getFromDiskCache(key1)).isNull(); }
@Test public void diskLruCacheGet_whenPopulated_shouldReturnValue() throws Exception { CacheService.initialize(context); CacheService.putToDiskCache(key1, data1.getBytes()); assertThat(CacheService.getFromDiskCache(key1)).isEqualTo(data1.getBytes()); }
@Test public void createValidDiskLruCacheKey_withNullValue_shouldReturnEmptyString() throws Exception { CacheService.initialize(context); assertThat(CacheService.createValidDiskCacheKey(null)).isEqualTo(""); }