public async Task CannotCallOnOperationExecutedAsyncWithNullContext() { var testClass = new ConventionBasedOperationFilter(typeof(EmptyApi)); Func <Task> act = () => testClass.OnOperationExecutedAsync( default(OperationContext), CancellationToken.None); await act.Should().ThrowAsync <ArgumentNullException>(); }
public async Task CanCallOnOperationExecutingAsync() { var testClass = new ConventionBasedOperationFilter(typeof(EmptyApi)); var context = new OperationContext( new EmptyApi(serviceProvider), s => new object(), "Test", true, null); var cancellationToken = CancellationToken.None; await testClass.OnOperationExecutingAsync(context, cancellationToken); }
public async Task OnOperationExecutingAsyncInvokesConventionMethod() { var api = new ExecuteApi(serviceProvider); var testClass = new ConventionBasedOperationFilter(typeof(ExecuteApi)); var context = new OperationContext( api, s => new object(), "Test", true, null); var cancellationToken = CancellationToken.None; await testClass.OnOperationExecutingAsync(context, cancellationToken); api.InvocationCount.Should().Be(1); }
public async Task OnOperationExecutingWithWrongNumberOfArguments() { var api = new IncorrectArgumentsApi(serviceProvider); var testClass = new ConventionBasedOperationFilter(typeof(IncorrectArgumentsApi)); var context = new OperationContext( api, s => new object(), "Test", true, null); var cancellationToken = CancellationToken.None; await testClass.OnOperationExecutingAsync(context, cancellationToken); testTraceListener.Messages.Should().Contain("incorrect number of arguments"); api.InvocationCount.Should().Be(0); }
public async Task OnOperationExecutingWithWrongApiType() { var api = new PrivateMethodApi(serviceProvider); var testClass = new ConventionBasedOperationFilter(typeof(ExecuteApi)); var context = new OperationContext( api, s => new object(), "Test", true, null); var cancellationToken = CancellationToken.None; await testClass.OnOperationExecutingAsync(context, cancellationToken); testTraceListener.Messages.Should().Contain("is of the incorrect type"); api.InvocationCount.Should().Be(0); }
public async Task OnOperationExecutingAsyncWithPrivateMethod() { var api = new PrivateMethodApi(serviceProvider); var testClass = new ConventionBasedOperationFilter(typeof(PrivateMethodApi)); var context = new OperationContext( api, s => new object(), "Test", true, null); var cancellationToken = CancellationToken.None; await testClass.OnOperationExecutingAsync(context, cancellationToken); testTraceListener.Messages.Should().Contain("inaccessible due to its protection level"); api.InvocationCount.Should().Be(0); }
public void CanConstruct() { var instance = new ConventionBasedOperationFilter(typeof(EmptyApi)); instance.Should().NotBeNull(); }