Exemple #1
0
        public async void RetrievingAllTwiceInARow_CallsRepositoryOnce()
        {
            var repository       = new Mock <IStoreRepository>();
            var cache            = new MemoryCache(new MemoryCacheOptions());
            var cachedRepository = new CachedStoreRepository(cache, repository.Object);

            var result1 = await cachedRepository.GetAllAsync();

            var result2 = await cachedRepository.GetAllAsync();

            repository.Verify(s => s.GetAllAsync(), Times.Once());
            Assert.Equal(result1, result2);
        }
Exemple #2
0
        public async void InvalidatingCacheBetweenTwoCalls_CallsRepositoryTwice()
        {
            var repository       = new Mock <IStoreRepository>();
            var cache            = new MemoryCache(new MemoryCacheOptions());
            var cachedRepository = new CachedStoreRepository(cache, repository.Object);

            var result1 = await cachedRepository.GetAllAsync();

            cache.Remove(CacheKeys.AllStores);
            var result2 = await cachedRepository.GetAllAsync();

            repository.Verify(s => s.GetAllAsync(), Times.Exactly(2));
            Assert.Equal(result1, result2);
        }