public async Task TestDoNotIncludeInCacheKeyAsync() { Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(0, cache1.Misses); var service = new MultiService(); IList <MockData> results; results = await service.GetItemsAsync(new[] { "a", "b", "c" }, new MockObject { Data = 1111 }); Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(3, cache1.Misses); Assert.AreEqual(3, results.Count); Assert.AreEqual("a", results[0].Id); Assert.AreEqual("a1111", results[0].Value); Assert.AreEqual("b", results[1].Id); Assert.AreEqual("b1111", results[1].Value); Assert.AreEqual("c", results[2].Id); Assert.AreEqual("c1111", results[2].Value); results = await service.GetItemsAsync(new[] { "a", "b", "d" }, new MockObject { Data = 2222 }); Assert.AreEqual(2, cache1.Hits); Assert.AreEqual(4, cache1.Misses); Assert.AreEqual(3, results.Count); Assert.AreEqual("a", results[0].Id); Assert.AreEqual("a1111", results[0].Value); Assert.AreEqual("b", results[1].Id); Assert.AreEqual("b1111", results[1].Value); Assert.AreEqual("d", results[2].Id); Assert.AreEqual("d2222", results[2].Value); }
public async Task TestMultiCacheWith3ItemsThen5Async() { Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(0, cache1.Misses); var service = new MultiService(); var results1 = await service.GetItemsAsync(new[] { "k1", "k2", "k3" }); Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(3, cache1.Misses); Assert.AreEqual(results1.Count, 3); CollectionAssert.Contains(results1.Select(x => x.Id).ToArray(), "k1"); CollectionAssert.Contains(results1.Select(x => x.Id).ToArray(), "k2"); CollectionAssert.Contains(results1.Select(x => x.Id).ToArray(), "k3"); var results2 = await service.GetItemsAsync(new[] { "k5", "k2", "k1", "k4", "k3" }); Assert.AreEqual(3, cache1.Hits); Assert.AreEqual(5, cache1.Misses); Assert.AreEqual(results2.Count, 5); CollectionAssert.Contains(results2.Select(x => x.Id).ToArray(), "k1"); CollectionAssert.Contains(results2.Select(x => x.Id).ToArray(), "k2"); CollectionAssert.Contains(results2.Select(x => x.Id).ToArray(), "k3"); CollectionAssert.Contains(results2.Select(x => x.Id).ToArray(), "k4"); CollectionAssert.Contains(results2.Select(x => x.Id).ToArray(), "k5"); }
public async Task TestMultiCacheWith1ItemsAsync() { Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(0, cache1.Misses); var service = new MultiService(); var results = await service.GetItemsAsync(new[] { "k1" }); Assert.AreEqual(0, cache1.Hits); Assert.AreEqual(1, cache1.Misses); Assert.AreEqual(results.Count, 1); }