public async Task GetAsyncGeneric_Integration_OK() { // arrange var cache = new MemoryDistributedCache(new OptionsWrapper <MemoryDistributedCacheOptions>(new MemoryDistributedCacheOptions())); await cache.SetStringAsync("test", "{ \"Id\": 1, \"Name\": \"Test\" }"); var memory = new MemoryCache(new OptionsWrapper <MemoryCacheOptions>(new MemoryCacheOptions())); var svc = new DualLayerCacheService(cache, memory, new NullLogger <DualLayerCacheService>(), _opts); // act var result = await svc.GetAsync <MyClass>("test"); // assert result.ShouldNotBeNull(); result.Id.ShouldBe(1); result.Name.ShouldBe("Test"); }
public async Task GetAsyncGeneric_OK() { // arrange var cache = new Mock <IDistributedCache>(); var memory = new Mock <IMemoryCache>(); var entry = new Mock <ICacheEntry>(); memory.Setup(m => m.CreateEntry(It.IsAny <object>())).Returns(entry.Object); var svc = new DualLayerCacheService(cache.Object, memory.Object, new NullLogger <DualLayerCacheService>(), _opts); // act var _ = await svc.GetAsync <MyClass>("test"); // assert cache.Verify(m => m.GetAsync("test", It.IsAny <CancellationToken>())); cache.VerifyNoOtherCalls(); entry.VerifyNoOtherCalls(); object val; memory.Verify(m => m.TryGetValue("test", out val)); memory.VerifyNoOtherCalls(); }