コード例 #1
0
        public void GetWithDataRetriever_LocalCacheHasValue_DistributedCacheAndDataRetrieverShouldNotBeCalled()
        {
            var(hybridProvider, localProvider, fakeDistributedProvider, _) = CreateCachingProviderWithFakes();
            var dataRetriever = CreateFakeDataRetriever(result: "value");

            localProvider.Set("key", "cachedValue", Expiration);


            var res = hybridProvider.Get("key", dataRetriever, Expiration);


            Assert.True(res.HasValue);
            Assert.Equal("cachedValue", res.Value);

            var cachedValue = localProvider.Get <string>("key");

            Assert.True(cachedValue.HasValue);
            Assert.Equal("cachedValue", cachedValue.Value);

            A.CallTo(() => dataRetriever.Invoke()).MustNotHaveHappened();
            fakeDistributedProvider.CallToGetWithDataRetriever <string>().MustNotHaveHappened();
            A.CallTo(() => fakeDistributedProvider.GetExpiration("key")).MustNotHaveHappened();
        }