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); }
public void TestRegistrationOptions() { var serviceProvider = CreateServiceProvider(); var middleware = new CrpcMiddleware <TRS>(serviceProvider, _loggerFactory); var registrationAction = CreateGeneralRegistrationAction(); middleware.SetRegistrationOptions(registrationAction); }
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); }
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)); } }