Beispiel #1
0
        public async Task CombineAMiddlewareAndAFuncShouldReturnAFuncThatCombinesThemAsync()
        {
            // Given
            var calls = new List <string>();

            AsyncMiddlewareFunc <string, int> func = async(str, _) =>
            {
                calls.Add("Func");
                await Task.CompletedTask;
                return(str.Length);
            };

            AsyncMiddleware <string, int> middleware = async(str, next, ct) =>
            {
                calls.Add("Before");
                var result = await next(str, ct);

                calls.Add("After");
                return(result);
            };

            var context = "Hello world!";

            // When
            var result = await middleware.Combine(func)(context, default);

            // Then
            result.Should().Be(context.Length);
            calls.Should().Equal("Before", "Func", "After");
        }
Beispiel #2
0
        public async Task ConstantShouldAlwaysReturnTheSameGivenAnyInputAndNextAsync(int input, string result, string otherResult)
        {
            // Given
            var middleware = AsyncMiddleware.Constant <int, string>(result);

            // When
            var actualResult = await middleware(input, (_, _) => Task.FromResult(otherResult), default(CancellationToken));

            // Then
            actualResult.Should().Be(result);
        }
Beispiel #3
0
        public async Task ConstantFuncWithAResultShouldAlwaysReturnTheSameGivenAnyInputAsync(int input, string result)
        {
            // Given
            var middlewareFunc = AsyncMiddleware.ConstantFunc <int, string>(result);

            // When
            var actualResult = await middlewareFunc(input, default(CancellationToken));

            // Then
            actualResult.Should().Be(result);
        }