Exemplo n.º 1
0
        public async Task CombineASimpleFuncAndAMiddlewareShouldReturnAFuncThatCombinesThemTask()
        {
            // Given
            var calls = new List <string>();

            SimpleTaskMiddlewareFunc <string> func = async str =>
            {
                calls.Add($"Func: {str}");
                await Task.CompletedTask;
            };

            TaskMiddleware <string> middleware = async(str, next, ct) =>
            {
                calls.Add($"Before: {str}");
                await next(str, ct);

                calls.Add($"After: {str}");
            };

            var context = "Hello";

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

            // Then
            calls.Should().Equal("Before: Hello", "Func: Hello", "After: Hello");
        }
Exemplo n.º 2
0
 public static TaskMiddlewareFunc <TContext> Combine <TContext>(
     this TaskMiddleware <TContext> middleware,
     SimpleTaskMiddlewareFunc <TContext> func) =>
 (context, ct) => middleware(context, (c, _) => func(c), ct);