コード例 #1
0
 public async Task CannotCallAuthorizeAsyncWithNullContext()
 {
     var         testClass = new ConventionBasedChangeSetItemAuthorizer(typeof(EmptyApi));
     Func <Task> act       = () => testClass.AuthorizeAsync(
         default(SubmitContext),
         dataModificationItem,
         CancellationToken.None);
     await act.Should().ThrowAsync <ArgumentNullException>();
 }
コード例 #2
0
        public async Task CanCallAuthorizeAsync()
        {
            var context           = new SubmitContext(new EmptyApi(serviceProvider), new ChangeSet());
            var cancellationToken = CancellationToken.None;
            var testClass         = new ConventionBasedChangeSetItemAuthorizer(typeof(EmptyApi));
            var result            = await testClass.AuthorizeAsync(context, dataModificationItem, cancellationToken);

            result.Should().BeTrue("AuthorizeAsync should be true by default.");
        }
コード例 #3
0
        public async Task AuthorizeAsyncInvokesConventionMethod()
        {
            var api               = new NoPermissionApi(serviceProvider);
            var context           = new SubmitContext(api, new ChangeSet());
            var cancellationToken = CancellationToken.None;
            var testClass         = new ConventionBasedChangeSetItemAuthorizer(typeof(NoPermissionApi));
            var result            = await testClass.AuthorizeAsync(context, dataModificationItem, cancellationToken);

            result.Should().BeFalse("AuthorizeAsync should invoke CanInsertObject.");
            api.InvocationCount.Should().Be(1);
        }
コード例 #4
0
        public async Task AuthorizeAsyncWithWrongNumberOfArguments()
        {
            testTraceListener.Clear();
            var api               = new IncorrectArgumentsApi(serviceProvider);
            var testClass         = new ConventionBasedChangeSetItemAuthorizer(typeof(IncorrectArgumentsApi));
            var context           = new SubmitContext(api, new ChangeSet());
            var cancellationToken = CancellationToken.None;
            var result            = await testClass.AuthorizeAsync(context, dataModificationItem, cancellationToken);

            result.Should().BeTrue("AuthorizeAsync should return true, because the api type is incorrect.");
            testTraceListener.Messages.Should().Contain("incorrect number of arguments");
            api.InvocationCount.Should().Be(0);
        }
コード例 #5
0
        public async Task AuthorizeAsyncWithWrongReturnType()
        {
            testTraceListener.Clear();
            var api               = new WrongReturnTypeApi(serviceProvider);
            var testClass         = new ConventionBasedChangeSetItemAuthorizer(typeof(WrongReturnTypeApi));
            var context           = new SubmitContext(api, new ChangeSet());
            var cancellationToken = CancellationToken.None;
            var result            = await testClass.AuthorizeAsync(context, dataModificationItem, cancellationToken);

            result.Should().BeTrue("AuthorizeAsync should return true, because CanInsertObject returns an int.");
            testTraceListener.Messages.Should().Contain("does not return a boolean value");
            api.InvocationCount.Should().Be(0);
        }
コード例 #6
0
        public async Task AuthorizeAsyncWithPrivateMethod()
        {
            testTraceListener.Clear();
            var api               = new PrivateMethodApi(serviceProvider);
            var testClass         = new ConventionBasedChangeSetItemAuthorizer(typeof(PrivateMethodApi));
            var context           = new SubmitContext(api, new ChangeSet());
            var cancellationToken = CancellationToken.None;
            var result            = await testClass.AuthorizeAsync(context, dataModificationItem, cancellationToken);

            result.Should().BeTrue("AuthorizeAsync should return true, because CanInsertObject is private.");
            testTraceListener.Messages.Should().Contain("inaccessible due to its protection level");
            api.InvocationCount.Should().Be(0);
        }
コード例 #7
0
        public void CanConstruct()
        {
            var instance = new ConventionBasedChangeSetItemAuthorizer(typeof(EmptyApi));

            instance.Should().NotBeNull();
        }
コード例 #8
0
 public async Task CannotCallAuthorizeAsyncWithNullItem()
 {
     var         testClass = new ConventionBasedChangeSetItemAuthorizer(typeof(EmptyApi));
     Func <Task> act       = () => testClass.AuthorizeAsync(new SubmitContext(new EmptyApi(serviceProvider), new ChangeSet()), default(ChangeSetItem), CancellationToken.None);
     await act.Should().ThrowAsync <ArgumentNullException>();
 }