コード例 #1
0
        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);
        }
コード例 #2
0
        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");
        }
コード例 #3
0
        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);
        }