public void FromCacheDoNotHitBackend() { // Arrange const string key = @"{9C318B2C-A13A-49B8-956D-2F9B7CA54ACB}"; Config.Cache.DefaultProvider = new MemoryCacheProvider(keyResolver => key); IEnumerable<Product> lst = new[] { new Product{Id = 1, Name = "Product 1"}, new Product{Id = 2, Name = "Product 2"}, new Product{Id = 3, Name = "Product 3"} }; lst.ToCache(); // Create a mocked list that throws when iterated. Mock<IEnumerable<Product>> backend = new Mock<IEnumerable<Product>>(); backend.Setup(bk => bk.GetEnumerator()) .Throws<InvalidOperationException>(); // Act IEnumerable<Product> ret = backend.Object.FromCache().ToList(); // Verify Assert.That(ret, Has.Count.EqualTo(3)); backend.Verify(bk => bk.GetEnumerator(), Times.Never()); }
public void ToCacheStoresDataInCache() { // Arrange const string key = @"{CDC8B352-ACE1-41F9-BBC6-B958E714C211}"; Config.Cache.DefaultProvider = new MemoryCacheProvider(keyResolver => key); IEnumerable<Product> lst = new[] { new Product{Id = 1, Name = "Product 1"}, new Product{Id = 2, Name = "Product 2"}, new Product{Id = 3, Name = "Product 3"} }; // Act lst.ToCache(); // Verify Assert.That(MemoryCache.Default.Contains(key)); Assert.That(MemoryCache.Default.Get(key), Is.AssignableTo<IEnumerable<Product>>()); Assert.That(MemoryCache.Default.Get(key) as IEnumerable<Product>, Has.Count.EqualTo(3)); }