@Test
public void getReaderForItemMissingFromCacheWillGiveUpAfterRetrying()
{

    when(cache.getReader("url")).thenThrow(new CacheMissException("url"));
    when(backingStore.getReader("url")).thenReturn(sourceContent);
    when(cache.put("url", sourceContent)).thenReturn(true);
    
    ContentReader returnedReader = cachingStore.getReader("url");
    
    // Upon failure, item is removed from cache
    verify(cache, atLeastOnce()).remove("url");
    
    // The content comes direct from the backing store
    assertSame(returnedReader, sourceContent);
}