Пример #1
0
        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);
        }
Пример #2
0
        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)
                              );
        }
Пример #3
0
        public void UseStartup <T>() where T : IConfigurator, new()
        {
            var config  = new T();
            var builder = new MiddlewareBuilder();

            config.Configure(builder);
            middleware = builder.Build();
        }
Пример #4
0
        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();
        }
Пример #5
0
        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.
        }
Пример #6
0
        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.
        }
Пример #7
0
        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);
        }