Example #1
0
        public async Task InvokeCacheAsync_NullFunction_ShouldNotCacheNull()
        {
            using var fixture = new ExpressionCacheBaseFixture();
            fixture.SetCacheProviderGetAsyncFailure();
            var key = fixture.ExpressionCacheBase.GetKey(() => _testFunctions.FunctionWithoutParametersAsync());

            var result = await fixture.ExpressionCacheBase.InvokeCacheAsync(() => _testFunctions.NullFunctionWithoutParametersAsync(), ExpressionCacheBaseFixture.TimeSpan, CacheAction.Invoke);

            result.Should().BeNull();
            fixture.CacheProviderMock.Verify(m => m.GetAsync <string>(key), Times.Never);
            fixture.CacheProviderMock.Verify(m => m.SetAsync(key, result, ExpressionCacheBaseFixture.TimeSpan), Times.Never);
        }
        public async Task InvokeCacheAsync_ResultNotInCache_ShouldReturnNewResult()
        {
            using (var fixture = new ExpressionCacheBaseFixture())
            {
                fixture.SetCacheProviderGetAsyncFailure();
                var key = fixture.ExpressionCacheBase.GetKey(() => _testFunctions.FunctionWithoutParametersAsync());

                var result = await fixture.ExpressionCacheBase.InvokeCacheAsync(() => _testFunctions.FunctionWithoutParametersAsync(), ExpressionCacheBaseFixture.TimeSpan, CacheAction.Invoke);

                result.ShouldBe(_testFunctions.ReturnResult);
                fixture.CacheProviderMock.Verify(m => m.GetAsync <string>(key), Times.Once);
                fixture.CacheProviderMock.Verify(m => m.SetAsync(key, result, ExpressionCacheBaseFixture.TimeSpan), Times.Once);
            }
        }