public async Task GetCategoriesPreviewRepositoryHitCountTest() { // Arrange var hitCount = 0; _repositoryMock.GetCategoriesPreviewFunc = () => { hitCount++; return(new List <CategoryPreviewContract> { new CategoryPreviewContract() }); }; // Act for (var i = 0; i < 5; i++) { await _cachedRepository.GetCategoriesPreview(10); } // Verify that we hit the repository only once. Assert.AreEqual(1, hitCount); await Task.Delay(_memoryCacheService.ExpirationTimeSpan + TimeSpan.FromSeconds(1)); // Act for (var i = 0; i < 5; i++) { await _cachedRepository.GetCategoriesPreview(10); } // Verify that we hit the repository twice. Assert.AreEqual(2, hitCount); }