public void Should_Use_AuthorizationProvider()
        {
            // Arrange
            WebApiEditorRequiredAttributeMock attribute = new WebApiEditorRequiredAttributeMock();

            attribute.AuthorizationProvider = new AuthorizationProviderMock()
            {
                IsEditorResult = true
            };
            attribute.ApplicationSettings = _applicationSettings;
            attribute.UserService         = _userService;

            IdentityStub identity = new IdentityStub()
            {
                Name = Guid.NewGuid().ToString(), IsAuthenticated = true
            };
            PrincipalStub principal = new PrincipalStub()
            {
                Identity = identity
            };

            Thread.CurrentPrincipal = principal;

            // Act
            bool isAuthorized = attribute.CallAuthorize(new HttpActionContext());

            // Assert
            Assert.That(isAuthorized, Is.True);
        }
        public void Should_Throw_SecurityException_When_AuthorizationProvider_Is_Null()
        {
            // Arrange
            WebApiEditorRequiredAttributeMock attribute = new WebApiEditorRequiredAttributeMock();
            attribute.AuthorizationProvider = null;

            IdentityStub identity = new IdentityStub() { Name = Guid.NewGuid().ToString(), IsAuthenticated = true };
            PrincipalStub principal = new PrincipalStub() { Identity = identity };
            Thread.CurrentPrincipal = principal;

            // Act + Assert
            attribute.CallAuthorize(new HttpActionContext());
        }
        public void Should_Use_AuthorizationProvider()
        {
            // Arrange
            WebApiEditorRequiredAttributeMock attribute = new WebApiEditorRequiredAttributeMock();
            attribute.AuthorizationProvider = new AuthorizationProviderMock() { IsEditorResult = true };
            attribute.ApplicationSettings = _applicationSettings;
            attribute.UserService = _userService;

            IdentityStub identity = new IdentityStub() { Name = Guid.NewGuid().ToString(), IsAuthenticated = true };
            PrincipalStub principal = new PrincipalStub() { Identity = identity };
            Thread.CurrentPrincipal = principal;

            // Act
            bool isAuthorized = attribute.CallAuthorize(new HttpActionContext());

            // Assert
            Assert.That(isAuthorized, Is.True);
        }
        public void Should_Throw_SecurityException_When_AuthorizationProvider_Is_Null()
        {
            // Arrange
            WebApiEditorRequiredAttributeMock attribute = new WebApiEditorRequiredAttributeMock();

            attribute.AuthorizationProvider = null;

            IdentityStub identity = new IdentityStub()
            {
                Name = Guid.NewGuid().ToString(), IsAuthenticated = true
            };
            PrincipalStub principal = new PrincipalStub()
            {
                Identity = identity
            };

            Thread.CurrentPrincipal = principal;

            // Act + Assert
            attribute.CallAuthorize(new HttpActionContext());
        }