コード例 #1
0
 public async Task CannotCallOnOperationExecutedAsyncWithNullContext()
 {
     var         testClass = new ConventionBasedOperationFilter(typeof(EmptyApi));
     Func <Task> act       = () => testClass.OnOperationExecutedAsync(
         default(OperationContext),
         CancellationToken.None);
     await act.Should().ThrowAsync <ArgumentNullException>();
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
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);
        }
コード例 #6
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);
        }
コード例 #7
0
        public void CanConstruct()
        {
            var instance = new ConventionBasedOperationFilter(typeof(EmptyApi));

            instance.Should().NotBeNull();
        }