public void UseMiddlewareWithIvokeWithOutAndRefThrows()
 {
     var mockServiceProvider = new DummyServiceProvider();
     var builder = new ApplicationBuilder(mockServiceProvider);
     builder.UseMiddleware(typeof(MiddlewareInjectWithOutAndRefParams));
     var exception = Assert.Throws<NotSupportedException>(() => builder.Build());
 }
示例#2
0
        public void UseMiddlewareWithIMiddlewareThrowsIfParametersSpecified()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);
            var exception           = Assert.Throws <NotSupportedException>(() => builder.UseMiddleware(typeof(Middleware), "arg"));

            Assert.Equal(Resources.FormatException_UseMiddlewareExplicitArgumentsNotSupported(typeof(IMiddleware)), exception.Message);
        }
示例#3
0
        public void UseMiddlewareWithInvokeWithOutAndRefThrows()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareInjectWithOutAndRefParams));
            var exception = Assert.Throws <NotSupportedException>(() => builder.Build());
        }
 public void UseMiddleware_MutlipleInvokeMethods_ThrowsException()
 {
     var mockServiceProvider = new DummyServiceProvider();
     var builder = new ApplicationBuilder(mockServiceProvider);
     builder.UseMiddleware(typeof(MiddlewareMultipleInvokesStub));
     var exception = Assert.Throws<InvalidOperationException>(() => builder.Build());
     Assert.Equal(Resources.FormatException_UseMiddleMutlipleInvokes("Invoke"), exception.Message);
 }
 public void UseMiddleware_NonTaskReturnType_ThrowsException()
 {
     var mockServiceProvider = new DummyServiceProvider();
     var builder = new ApplicationBuilder(mockServiceProvider);
     builder.UseMiddleware(typeof(MiddlewareNonTaskReturnStub));
     var exception = Assert.Throws<InvalidOperationException>(() => builder.Build());
     Assert.Equal(Resources.FormatException_UseMiddlewareNonTaskReturnType("Invoke", nameof(Task)), exception.Message);
 }
 public void UseMiddlewareWithInvokeArg()
 {
     var mockServiceProvider = new DummyServiceProvider();
     var builder = new ApplicationBuilder(mockServiceProvider);
     builder.UseMiddleware(typeof(MiddlewareInjectInvoke));
     var app = builder.Build();
     app(new DefaultHttpContext());
 }
        public void UseMiddleware_WithNoParameters_ThrowsException()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder = new ApplicationBuilder(mockServiceProvider);
            builder.UseMiddleware(typeof(MiddlewareNoParametersStub));
            var exception = Assert.Throws<InvalidOperationException>(() => builder.Build());

            Assert.Equal(Resources.FormatException_UseMiddlewareNoParameters("Invoke",nameof(HttpContext)), exception.Message); 
        }
 public async Task UseMiddleware_ThrowsIfArgCantBeResolvedFromContainer()
 {
     var mockServiceProvider = new DummyServiceProvider();
     var builder = new ApplicationBuilder(mockServiceProvider);
     builder.UseMiddleware(typeof(MiddlewareInjectInvokeNoService));
     var app = builder.Build();
     var exception = await Assert.ThrowsAsync<InvalidOperationException>(() => app(new DefaultHttpContext()));
     Assert.Equal(Resources.FormatException_InvokeMiddlewareNoService(typeof(object), typeof(MiddlewareInjectInvokeNoService)), exception.Message);
 }
        public void UseMiddleware_MutlipleInvokeMethods_ThrowsException()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareMultipleInvokesStub));
            var exception = Assert.Throws <InvalidOperationException>(() => builder.Build());

            Assert.Equal(Resources.FormatException_UseMiddleMutlipleInvokes("Invoke"), exception.Message);
        }
        public void UseMiddleware_NonTaskReturnType_ThrowsException()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareNonTaskReturnStub));
            var exception = Assert.Throws <InvalidOperationException>(() => builder.Build());

            Assert.Equal(Resources.FormatException_UseMiddlewareNonTaskReturnType("Invoke", nameof(Task)), exception.Message);
        }
        public void UseMiddleware_WithNoParameters_ThrowsException()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareNoParametersStub));
            var exception = Assert.Throws <InvalidOperationException>(() => builder.Build());

            Assert.Equal(Resources.FormatException_UseMiddlewareNoParameters("Invoke", nameof(HttpContext)), exception.Message);
        }
示例#12
0
        public void UseMiddlewareWithInvokeArg()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareInjectInvoke));
            var app = builder.Build();

            app(new DefaultHttpContext());
        }
示例#13
0
        public async Task UseMiddleware_ThrowsIfArgCantBeResolvedFromContainer()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(MiddlewareInjectInvokeNoService));
            var app       = builder.Build();
            var exception = await Assert.ThrowsAsync <InvalidOperationException>(() => app(new DefaultHttpContext()));

            Assert.Equal(Resources.FormatException_InvokeMiddlewareNoService(typeof(object), typeof(MiddlewareInjectInvokeNoService)), exception.Message);
        }
示例#14
0
        public async Task UseMiddlewareWithIMiddlewareThrowsIfNoIMiddlewareFactoryRegistered()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(Middleware));
            var app       = builder.Build();
            var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() =>
            {
                var context             = new DefaultHttpContext();
                var sp                  = new DummyServiceProvider();
                context.RequestServices = sp;
                await app(context);
            });

            Assert.Equal(Resources.FormatException_UseMiddlewareNoMiddlewareFactory(typeof(IMiddlewareFactory)), exception.Message);
        }
示例#15
0
        public async Task UseMiddlewareWithIMiddlewareThrowsIfMiddlewareFactoryCreateReturnsNull()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(Middleware));
            var app       = builder.Build();
            var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() =>
            {
                var context = new DefaultHttpContext();
                var sp      = new DummyServiceProvider();
                sp.AddService(typeof(IMiddlewareFactory), new BadMiddlewareFactory());
                context.RequestServices = sp;
                await app(context);
            });

            Assert.Equal(
                Resources.FormatException_UseMiddlewareUnableToCreateMiddleware(
                    typeof(BadMiddlewareFactory),
                    typeof(Middleware)),
                exception.Message);
        }
示例#16
0
        public async Task UseMiddlewareWithIMiddlewareWorks()
        {
            var mockServiceProvider = new DummyServiceProvider();
            var builder             = new ApplicationBuilder(mockServiceProvider);

            builder.UseMiddleware(typeof(Middleware));
            var app               = builder.Build();
            var context           = new DefaultHttpContext();
            var sp                = new DummyServiceProvider();
            var middlewareFactory = new BasicMiddlewareFactory();

            sp.AddService(typeof(IMiddlewareFactory), middlewareFactory);
            context.RequestServices = sp;
            await app(context);

            Assert.True(Assert.IsType <bool>(context.Items["before"]));
            Assert.True(Assert.IsType <bool>(context.Items["after"]));
            Assert.NotNull(middlewareFactory.Created);
            Assert.NotNull(middlewareFactory.Released);
            Assert.IsType <Middleware>(middlewareFactory.Created);
            Assert.IsType <Middleware>(middlewareFactory.Released);
            Assert.Same(middlewareFactory.Created, middlewareFactory.Released);
        }