public async Task IMiddlewareBuilder_UseRoute_OneBranchNotMet() { // arrange var builder = new MiddlewareBuilder <Context>(); var path = new Tracer(); builder.Use(path.TestMiddleware("A")); builder.UseRoutes(new Route <Context>(context => false, branchBuilder => { branchBuilder.Use(path.TestMiddleware("C")); } )); builder.Use(path.TestMiddleware("B")); var stack = builder.Build(); // act await stack(new Context()); // assert // no exception till here Assert.Equal("AB", path.Trace); }
public async Task MiddlewareBuilder_Use_LinearOrder() { // arrange var builder = new MiddlewareBuilder <Context>(); var list = new List <string>(); // act builder.Use(next => { return(async context => { list.Add("A"); await next(context); list.Add("Z"); }); }); builder.Use(next => { return(async context => { list.Add("B"); await next(context); list.Add("Y"); }); }); builder.Use(next => { return(async context => { list.Add("C"); await next(context); list.Add("X"); }); }); var executeAsync = builder.Build(); var x = new Context(); await executeAsync(x); // assert Assert.Collection(list, l => Assert.Equal("A", l), l => Assert.Equal("B", l), l => Assert.Equal("C", l), l => Assert.Equal("X", l), l => Assert.Equal("Y", l), l => Assert.Equal("Z", l) ); }
public void UseStartup <T>() where T : IConfigurator, new() { var config = new T(); var builder = new MiddlewareBuilder(); config.Configure(builder); middleware = builder.Build(); }
public void Configure <T>() where T : IConfigurator, new() { var config = new T(); var builder = new MiddlewareBuilder(); config.Configure(builder); middleware = builder.Build(); var iocBuilder = new IocBuilder(); config.ConfigureServices(iocBuilder); Services = iocBuilder.Build(); }
public async Task MiddlewareBuilder_Build_Empty() { // arrange var builder = new MiddlewareBuilder <Context>(); // act var executeAsync = builder.Build(); var ctx = new Context(); await executeAsync(ctx); // assert // .. no exception till here. }
public async Task MiddlewareBuilder_Build_ForNullContext() { // arrange var builder = new MiddlewareBuilder <Context>(); // act builder.Use(next => { return(async context => { await next(context); }); }); var executeAsync = builder.Build(); await executeAsync(null); // assert // .. no exception till here. }
public async Task IMiddlewareBuilder_UseRoute_Empty() { // arrange var builder = new MiddlewareBuilder <Context>(); var path = new Tracer(); builder.Use(path.TestMiddleware("A")); builder.UseRoutes(); builder.Use(path.TestMiddleware("B")); var stack = builder.Build(); // act await stack(new Context()); // assert // no exception till here Assert.Equal("AB", path.Trace); }