public async Task When_TicketIsExpired_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            const string ticketId = "ticket_id";
            const string clientId = "client_id";

            InitializeFakeObjects();
            var getAuthorizationActionParameter = new GetAuthorizationActionParameter
            {
                TicketId = ticketId
            };
            var ticket = new Ticket
            {
                Id                 = ticketId,
                ClientId           = clientId,
                ExpirationDateTime = DateTime.UtcNow.AddSeconds(-40)
            };

            _ticketRepositoryStub.Setup(t => t.Get(It.IsAny <IEnumerable <string> >()))
            .Returns(Task.FromResult((IEnumerable <Ticket>) new List <Ticket> {
                ticket
            }));

            // ACT & ASSERTS
            var exception = await Assert.ThrowsAsync <BaseUmaException>(() => _getAuthorizationAction.Execute(getAuthorizationActionParameter, clientId));

            Assert.NotNull(exception);
            Assert.True(exception.Code == ErrorCodes.ExpiredTicket);
            Assert.True(exception.Message == ErrorDescriptions.TheTicketIsExpired);
        }
        public async Task When_TicketId_IsNot_Specified_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            InitializeFakeObjects();
            var getAuthorizationActionParameter = new GetAuthorizationActionParameter();

            // ACT & ASSERTS
            var exception = await Assert.ThrowsAsync <BaseUmaException>(() => _getAuthorizationAction.Execute(getAuthorizationActionParameter, "value"));

            Assert.NotNull(exception);
            Assert.True(exception.Code == ErrorCodes.InvalidRequestCode);
            Assert.True(exception.Message == string.Format(ErrorDescriptions.TheParameterNeedsToBeSpecified, PostAuthorizationNames.TicketId));
        }
        public async Task When_Ticket_DoesntExist_Then_Exception_Is_Thrown()
        {
            // ARRANGE
            const string ticketId = "ticket_id";

            InitializeFakeObjects();
            var getAuthorizationActionParameter = new GetAuthorizationActionParameter
            {
                TicketId = ticketId
            };

            _ticketRepositoryStub.Setup(t => t.Get(It.IsAny <IEnumerable <string> >()))
            .Returns(Task.FromResult((IEnumerable <Ticket>) new List <Ticket>()));

            // ACT & ASSERTS
            var exception = await Assert.ThrowsAsync <BaseUmaException>(() => _getAuthorizationAction.Execute(getAuthorizationActionParameter, "clientId"));

            Assert.NotNull(exception);
            Assert.True(exception.Code == ErrorCodes.InvalidTicket);
            Assert.True(exception.Message == string.Format(ErrorDescriptions.TheTicketDoesntExist, ticketId));
        }
        public async Task When_Requesting_Authorized_Access_Then_Rpt_Is_Returned()
        {
            // ARRANGE
            const string ticketId = "ticket_id";
            const string clientId = "client_id";

            InitializeFakeObjects();
            var getAuthorizationActionParameter = new GetAuthorizationActionParameter
            {
                TicketId = ticketId
            };
            var ticket = new Ticket
            {
                Id                 = ticketId,
                ClientId           = clientId,
                ExpirationDateTime = DateTime.UtcNow.AddSeconds(40)
            };

            _ticketRepositoryStub.Setup(t => t.Get(It.IsAny <IEnumerable <string> >()))
            .Returns(Task.FromResult((IEnumerable <Ticket>) new List <Ticket> {
                ticket
            }));
            _authorizationPolicyValidatorStub.Setup(a => a.IsAuthorized(It.IsAny <Ticket>(),
                                                                        It.IsAny <string>(),
                                                                        It.IsAny <List <ClaimTokenParameter> >()))
            .Returns(Task.FromResult(new AuthorizationPolicyResult
            {
                Type = AuthorizationPolicyResultEnum.Authorized
            }));
            _repositoryExceptionHandlerStub.Setup(r => r.HandleException(It.IsAny <string>(), It.IsAny <Func <bool> >()))
            .Returns(true);

            // ACT
            var result = await _getAuthorizationAction.Execute(getAuthorizationActionParameter, clientId);

            // ASSERTS
            Assert.NotNull(result);
            Assert.True(result.AuthorizationPolicyResult == AuthorizationPolicyResultEnum.Authorized);
            Assert.NotEmpty(result.Rpt);
        }
예제 #5
0
        public async Task <AuthorizationResponse> Execute(GetAuthorizationActionParameter getAuthorizationActionParameter, string clientId)
        {
            var result = await Execute(new[] { getAuthorizationActionParameter }, clientId);

            return(result.First());
        }
예제 #6
0
 public async Task <AuthorizationResponse> GetAuthorization(
     GetAuthorizationActionParameter getAuthorizationActionParameter,
     string clientId)
 {
     return(await _getAuthorizationAction.Execute(getAuthorizationActionParameter, clientId));
 }