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(); }