Ejemplo n.º 1
0
    public async Task GetOrCreateAsync_Generic_OK()
    {
        // arrange
        var expectedBytes = Encoding.UTF8.GetBytes("{\"Id\":1,\"Name\":\"Test\"}");
        var cache         = new Mock <IDistributedCache>();
        var logger        = new Mock <ILogger <DistributedCacheService> >();

        cache.Setup(m => m.GetAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())).ReturnsAsync((byte[])null);
        var svc = new DistributedCacheService(cache.Object, logger.Object);

        const string key = "test";

        // act
        var _ = await svc.GetOrCreateAsync(key, _ => Task.FromResult(new MyClass {
            Id = 1, Name = "Test"
        }));

        // assert
        cache.Verify(m => m.GetAsync(key, It.IsAny <CancellationToken>()));
        cache.Verify(m => m.SetAsync(key, It.Is <byte[]>(x => x.SequenceEqual(expectedBytes)), It.IsAny <DistributedCacheEntryOptions>(), It.IsAny <CancellationToken>()));
        cache.VerifyNoOtherCalls();

        logger.Verify(m => m.IsEnabled(LogLevel.Trace));
        logger.VerifyNoOtherCalls();
    }
Ejemplo n.º 2
0
    public async Task GetValueAsync_Missing_Null()
    {
        // arrange
        var svc = new DistributedCacheService(new MemoryDistributedCache(_opts), new NullLogger <DistributedCacheService>());

        // act & assert
        (await svc.GetValueAsync <int>("test")).ShouldBeNull();
    }
Ejemplo n.º 3
0
    public void GetValue_Missing_Null()
    {
        // arrange
        var svc = new DistributedCacheService(new MemoryDistributedCache(_opts), new NullLogger <DistributedCacheService>());

        // act & assert
        svc.GetValue <int>("test").ShouldBeNull();
    }
Ejemplo n.º 4
0
    public async Task GetValueAsync_Found_OK()
    {
        // arrange
        var       svc = new DistributedCacheService(new MemoryDistributedCache(_opts), new NullLogger <DistributedCacheService>());
        const int val = 80;
        await svc.SetValueAsync("test", val, new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1) });

        // act & assert
        (await svc.GetValueAsync <int>("test")).ShouldBe(val);
    }
Ejemplo n.º 5
0
    public async Task GetReferenceAsync_Found_OK()
    {
        // arrange
        var svc = new DistributedCacheService(new MemoryDistributedCache(_opts), new NullLogger <DistributedCacheService>());
        var val = new MyClass {
            Id = 80, Name = "testval"
        };
        await svc.SetAsync("test", val, new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1) });

        // act & assert
        (await svc.GetAsync <MyClass>("test")).ShouldBeEquivalentTo(val);
    }
Ejemplo n.º 6
0
    public void Get_OK()
    {
        // arrange
        var cache = new Mock <IDistributedCache>();
        var svc   = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        var _ = svc.Get <string>("test");

        // assert
        cache.Verify(m => m.Get("test"));
        cache.VerifyNoOtherCalls();
    }
Ejemplo n.º 7
0
    public async Task GetAsyncGeneric_OK()
    {
        // arrange
        var cache = new Mock <IDistributedCache>();
        var svc   = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        var _ = await svc.GetAsync <MyClass>("test");

        // assert
        cache.Verify(m => m.GetAsync("test", It.IsAny <CancellationToken>()));
        cache.VerifyNoOtherCalls();
    }
Ejemplo n.º 8
0
    public void Remove_OK()
    {
        // arrange
        var cache = new Mock <IDistributedCache>();
        var svc   = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        svc.Remove("test");

        // assert
        cache.Verify(m => m.Remove("test"));
        cache.VerifyNoOtherCalls();
    }
Ejemplo n.º 9
0
    public void GetValue_Found_OK()
    {
        // arrange
        var svc = new DistributedCacheService(new MemoryDistributedCache(_opts), new NullLogger <DistributedCacheService>());
        var val = 80;

        svc.SetValue("test", val, new DistributedCacheEntryOptions {
            AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1)
        });

        // act & assert
        svc.GetValue <int>("test").ShouldBe(val);
    }
Ejemplo n.º 10
0
    public void Set_OK()
    {
        // arrange
        var expectedBytes = Encoding.UTF8.GetBytes("\"blob\"");
        var cache         = new Mock <IDistributedCache>();
        var svc           = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        var _ = svc.Set("test", _ => "blob");

        // assert
        cache.Verify(m => m.Set("test", It.Is <byte[]>(x => x.SequenceEqual(expectedBytes)), It.IsAny <DistributedCacheEntryOptions>()));
        cache.VerifyNoOtherCalls();
    }
Ejemplo n.º 11
0
    public async Task SetAsync_OK()
    {
        // arrange
        var expectedBytes = Encoding.UTF8.GetBytes("\"blob\"");
        var cache         = new Mock <IDistributedCache>();
        var svc           = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        var _ = await svc.SetAsync("test", _ => Task.FromResult("blob"));

        // assert
        cache.Verify(m => m.SetAsync("test", It.Is <byte[]>(x => x.SequenceEqual(expectedBytes)), It.IsAny <DistributedCacheEntryOptions>(), It.IsAny <CancellationToken>()));
        cache.VerifyNoOtherCalls();
    }
Ejemplo n.º 12
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 svc = new DistributedCacheService(cache, new NullLogger <DistributedCacheService>());

        // act
        var result = await svc.GetAsync <MyClass>("test");

        // assert
        result.ShouldNotBeNull();
        result.Id.ShouldBe(1);
        result.Name.ShouldBe("Test");
    }
Ejemplo n.º 13
0
    public void Set_Generic_OK()
    {
        // arrange
        var expectedBytes = Encoding.UTF8.GetBytes("{\"Id\":1,\"Name\":\"Test\"}");
        var cache         = new Mock <IDistributedCache>();
        var svc           = new DistributedCacheService(cache.Object, new NullLogger <DistributedCacheService>());

        // act
        var _ = svc.Set("test", _ => new MyClass {
            Id = 1, Name = "Test"
        });

        // assert
        cache.Verify(m => m.Set("test", It.Is <byte[]>(x => x.SequenceEqual(expectedBytes)), It.IsAny <DistributedCacheEntryOptions>()));
        cache.VerifyNoOtherCalls();
    }