Exemplo n.º 1
0
        public async Task TestOnlyPostMethodAllowed(bool valid, string method)
        {
            var serviceProvider    = CreateServiceProvider();
            var middleware         = new CrpcMiddleware <TRS>(serviceProvider, _loggerFactory);
            var registrationAction = CreateGeneralRegistrationAction();
            var context            = new DefaultHttpContext();

            middleware.SetRegistrationOptions(registrationAction);
            context.Request.Method = method;
            context.Request.Path   = "/preview/test_endpoint";

            if (valid)
            {
                await middleware.InvokeAsync(context, (ctx) => Task.CompletedTask);

                return;
            }

            var ex = await Assert.ThrowsAsync <CrpcException>(async() =>
            {
                await middleware.InvokeAsync(context, (ctx) => Task.CompletedTask);
            });

            Assert.Equal(CrpcCodes.MethodNotAllowed, ex.Message);
        }
Exemplo n.º 2
0
        public void TestRegistrationOptions()
        {
            var serviceProvider    = CreateServiceProvider();
            var middleware         = new CrpcMiddleware <TRS>(serviceProvider, _loggerFactory);
            var registrationAction = CreateGeneralRegistrationAction();

            middleware.SetRegistrationOptions(registrationAction);
        }
Exemplo n.º 3
0
        public void TestPreventionOfDoubleRegistration()
        {
            var serviceProvider    = CreateServiceProvider();
            var middleware         = new CrpcMiddleware <TRS>(serviceProvider, _loggerFactory);
            var registrationAction = CreateGeneralRegistrationAction();

            middleware.SetRegistrationOptions(registrationAction);

            var ex = Assert.Throws <InvalidOperationException>(
                () => middleware.SetRegistrationOptions(registrationAction)
                );

            Assert.Equal("Registration options already set", ex.Message);
        }
Exemplo n.º 4
0
        public void TestEnsureAcceptAllowed(bool valid, params string[] accept)
        {
            var serviceProvider = CreateServiceProvider();
            var middleware      = new CrpcMiddleware <TRS>(serviceProvider, _loggerFactory);
            var context         = new DefaultHttpContext();

            context.Request.Headers.Add("Accept", accept);
            context.Request.Method = "POST";

            if (valid)
            {
                middleware.EnsureAcceptIsAllowed(context);
            }
            else
            {
                Assert.Throws <CrpcException>(() => middleware.EnsureAcceptIsAllowed(context));
            }
        }