Exemplo n.º 1
0
        public async Task GetSetAsync_always_calculates_the_value()
        {
            // Arrange
            var subscriber = FakeRedis.CreateSubscriber();
            var sut        = new RedisInvalidationSender(subscriber, "invalidation");

            var count = 0;

            // Act
            var valueFromCache = await sut.GetSetAsync("testKey", async ct => { ++count; return("42"); }, TimeSpan.FromSeconds(10));

            // Assert
            Assert.Equal(1, count);
            Assert.Equal("42", valueFromCache);
        }
Exemplo n.º 2
0
        public async Task InvalidateAsync_publishes_an_invalidation_message()
        {
            // Arrange
            string?publishedChannel = null;
            string?publishedMessage = null;

            var subscriber = FakeRedis.CreateSubscriber(onPublish: (c, m) =>
            {
                publishedChannel = c;
                publishedMessage = m;
            });

            var sut = new RedisInvalidationSender(subscriber, "invalidation");

            // Act
            await sut.InvalidateAsync("testKey");

            // Assert
            Assert.Equal("invalidation", publishedChannel);
            Assert.Equal("testKey", publishedMessage);
        }