public async Task RunAsync()
        {
            OkObjectResult middlewareResponse = new OkObjectResult("hello");

            var instance   = this.CreateInstance();
            var middleware = new FunctionMiddleware((HttpContext context) =>
            {
                dynamic obj = new
                {
                    message = "hello"
                };

                return(Task.FromResult <IActionResult>(new OkObjectResult(obj)));
            });

            instance.Use(middleware);
            var result = await instance.RunAsync();

            var httpResponseResult = result.ShouldBeOfType <HttpResponseResult>();
            await httpResponseResult.ExecuteResultAsync(new ActionContext()
            {
                HttpContext = this.context
            });

            this.context.Response.StatusCode.ShouldBe((int)HttpStatusCode.OK);
            //var content = this.context.Response.result.Content.ReadAsStringAsync();
            //content.ShouldBe("hello");
        }
示例#2
0
        public async Task FunctionShouldBeCalledOnInvoke()
        {
            Mock <IActionResult> result = new Mock <IActionResult>();

            int callCount = 0;

            Task <IActionResult> func(HttpContext ctx)
            {
                callCount++;
                return(Task.FromResult <IActionResult>(result.Object));
            }

            FunctionMiddleware instance = new FunctionMiddleware(func);
            await instance.InvokeAsync(context.Object);

            callCount.ShouldBe(1);
        }