Пример #1
0
    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");
    }
Пример #2
0
    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();
    }