@Test
  public void testWithMultiCacheKeys() throws Exception {
    CacheKey insertKey1 = new SimpleCacheKey("foo");
    byte[] value1 = new byte[101];
    value1[50] = 'a'; // just so it's not all zeros for the equality test below.
    mCache.insert(insertKey1, WriterCallbacks.from(value1));

    List<CacheKey> keys1 = new ArrayList<>(2);
    keys1.add(new SimpleCacheKey("bar"));
    keys1.add(new SimpleCacheKey("foo"));
    MultiCacheKey matchingMultiKey = new MultiCacheKey(keys1);
    assertArrayEquals(value1, getContents(mCache.getResource(matchingMultiKey)));

    List<CacheKey> keys2 = new ArrayList<>(2);
    keys2.add(new SimpleCacheKey("one"));
    keys2.add(new SimpleCacheKey("two"));
    MultiCacheKey insertKey2 = new MultiCacheKey(keys2);
    byte[] value2 = new byte[101];
    value1[50] = 'b'; // just so it's not all zeros for the equality test below.
    mCache.insert(insertKey2, WriterCallbacks.from(value2));

    CacheKey matchingSimpleKey = new SimpleCacheKey("one");
    assertArrayEquals(value2, getContents(mCache.getResource(matchingSimpleKey)));
  }
Tests size based file eviction of cache files. Also tests that unexpected files (which are not
in the format expected by the cache) do not count towards the cache size, and are also evicted
during both evictions (LRU and Old).

@throws Exception
imagepipeline-base/src/test/java/com/facebook/cache/disk/DiskStorageCacheTest.java