public void HandleLogoutAsync_WhenHttpContextIsNull_ThrowsArgumentNullException()
        {
            ITokenHelperFactory sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.HandleLogoutAsync(null));

            Assert.That(result.ParamName, Is.EqualTo("httpContext"));
        }
Beispiel #2
0
        public void AcquireTokenAsync_WhenHttpContextIsNull_ThrowsArgumentNullException()
        {
            ITokenHelperFactory sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.AcquireTokenAsync(_fixture.Create <TokenType>(), null));

            Assert.That(result.ParamName, Is.EqualTo("httpContext"));
        }
Beispiel #3
0
        public void RefreshTokenAsync_WhenReturnUrlIsEmpty_ThrowsArgumentNullException()
        {
            ITokenHelperFactory sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.RefreshTokenAsync(_fixture.Create <TokenType>(), CreateHttpContext(), string.Empty));

            Assert.That(result.ParamName, Is.EqualTo("returnUrl"));
        }
Beispiel #4
0
        public void StoreTokenAsync_WhenBase64TokenIsWhiteSpace_ThrowsArgumentNullException()
        {
            ITokenHelperFactory sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.StoreTokenAsync(_fixture.Create <TokenType>(), CreateHttpContext(), " "));

            Assert.That(result.ParamName, Is.EqualTo("base64Token"));
        }
Beispiel #5
0
        public void AuthorizeAsync_WhenReturnUrlIsWhiteSpace_ThrowsArgumentNullException()
        {
            ITokenHelperFactory sut = CreateSut();

            ArgumentNullException result = Assert.ThrowsAsync <ArgumentNullException>(async() => await sut.AuthorizeAsync(_fixture.Create <TokenType>(), CreateHttpContext(), " "));

            Assert.That(result.ParamName, Is.EqualTo("returnUrl"));
        }
Beispiel #6
0
        public void AcquireTokenAsync_WhenCalledWithUnsupportedTokenType_ThrowsNotSupportedException()
        {
            ITokenHelperFactory sut = CreateSut();

            TokenType             tokenType = _fixture.Create <TokenType>();
            NotSupportedException result    = Assert.ThrowsAsync <NotSupportedException>(async() => await sut.AcquireTokenAsync(tokenType, CreateHttpContext()));

            Assert.That(result.Message, Is.EqualTo($"The token type '{tokenType}' is not supported within the method 'AcquireTokenAsync'."));
        }
        public void GetTokenAsync_WhenCalledWithSupportedTokenTypeButUnsupportedGenericToken_ThrowsNotSupportedException()
        {
            TokenType             tokenType   = _fixture.Create <TokenType>();
            ITokenHelper <IToken> tokenHelper = BuildTokenHelperMock <IToken>(tokenType).Object;
            ITokenHelperFactory   sut         = CreateSut(new[] { tokenHelper });

            NotSupportedException result = Assert.ThrowsAsync <NotSupportedException>(async() => await sut.GetTokenAsync <IRefreshableToken>(tokenType, CreateHttpContext()));

            Assert.That(result.Message, Is.EqualTo($"The helper logic for the token type '{tokenType}' does not support the generic type 'IRefreshableToken' within the method 'GetTokenAsync'."));
        }
        public AccountController(ICommandBus commandBus, ITrustedDomainHelper trustedDomainHelper, ITokenHelperFactory tokenHelperFactory)
        {
            NullGuard.NotNull(commandBus, nameof(commandBus))
            .NotNull(trustedDomainHelper, nameof(trustedDomainHelper))
            .NotNull(tokenHelperFactory, nameof(tokenHelperFactory));

            _commandBus          = commandBus;
            _trustedDomainHelper = trustedDomainHelper;
            _tokenHelperFactory  = tokenHelperFactory;
        }
        public async Task GetTokenAsync_WhenCalledWithSupportedTokenType_AssertGetTokenAsyncWasCalledOnTokenHelperForTokenType()
        {
            TokenType tokenType = _fixture.Create <TokenType>();
            Mock <ITokenHelper <IRefreshableToken> > tokenHelperMock = BuildTokenHelperMock <IRefreshableToken>(tokenType);
            ITokenHelperFactory sut = CreateSut(new[] { tokenHelperMock.Object });

            HttpContext httpContext = CreateHttpContext();
            await sut.GetTokenAsync <IRefreshableToken>(tokenType, httpContext);

            tokenHelperMock.Verify(m => m.GetTokenAsync(It.Is <HttpContext>(value => value == httpContext)), Times.Once);
        }
Beispiel #10
0
        public HomeController(IQueryBus queryBus, IClaimResolver claimResolver, ITokenHelperFactory tokenHelperFactory, IAcmeChallengeResolver acmeChallengeResolver)
        {
            NullGuard.NotNull(queryBus, nameof(queryBus))
            .NotNull(claimResolver, nameof(claimResolver))
            .NotNull(tokenHelperFactory, nameof(tokenHelperFactory))
            .NotNull(acmeChallengeResolver, nameof(acmeChallengeResolver));

            _queryBus              = queryBus;
            _claimResolver         = claimResolver;
            _tokenHelperFactory    = tokenHelperFactory;
            _acmeChallengeResolver = acmeChallengeResolver;
        }
Beispiel #11
0
        public async Task AcquireTokenAsync_WhenCalledWithSupportedTokenTypeWithoutArguments_ReturnsActionResultFromAcquireTokenAsyncOnTokenHelperForTokenType()
        {
            TokenType           tokenType    = _fixture.Create <TokenType>();
            IActionResult       actionResult = new Mock <IActionResult>().Object;
            ITokenHelper        tokenHelper  = BuildTokenHelperMock(tokenType, actionResult).Object;
            ITokenHelperFactory sut          = CreateSut(new[] { tokenHelper });

            HttpContext   httpContext = CreateHttpContext();
            IActionResult result      = await sut.AcquireTokenAsync(tokenType, httpContext);

            Assert.That(result, Is.EqualTo(actionResult));
        }
Beispiel #12
0
        public ContactController(ICommandBus commandBus, IQueryBus queryBus, IClaimResolver claimResolver, ITokenHelperFactory tokenHelperFactory)
        {
            NullGuard.NotNull(commandBus, nameof(commandBus))
            .NotNull(queryBus, nameof(queryBus))
            .NotNull(claimResolver, nameof(claimResolver))
            .NotNull(tokenHelperFactory, nameof(tokenHelperFactory));

            _commandBus         = commandBus;
            _queryBus           = queryBus;
            _claimResolver      = claimResolver;
            _tokenHelperFactory = tokenHelperFactory;
        }
        public async Task GetTokenAsync_WhenCalledWithSupportedTokenType_ReturnTokenFromGetTokenAsyncOnTokenHelperForTokenType()
        {
            TokenType         tokenType                  = _fixture.Create <TokenType>();
            IRefreshableToken refreshableToken           = _fixture.BuildRefreshableTokenMock().Object;
            ITokenHelper <IRefreshableToken> tokenHelper = BuildTokenHelperMock(tokenType, refreshableToken).Object;
            ITokenHelperFactory sut = CreateSut(new[] { tokenHelper });

            HttpContext       httpContext = CreateHttpContext();
            IRefreshableToken result      = await sut.GetTokenAsync <IRefreshableToken>(tokenType, httpContext);

            Assert.That(result, Is.EqualTo(refreshableToken));
        }
Beispiel #14
0
        public async Task RefreshTokenAsync_WhenCalledWithSupportedTokenType_ReturnsActionResultFromRefreshTokenAsyncOnTokenHelperForTokenType()
        {
            TokenType           tokenType    = _fixture.Create <TokenType>();
            IActionResult       actionResult = new Mock <IActionResult>().Object;
            ITokenHelper        tokenHelper  = BuildTokenHelperMock(tokenType, actionResult).Object;
            ITokenHelperFactory sut          = CreateSut(new[] { tokenHelper });

            HttpContext   httpContext = CreateHttpContext();
            string        resultUrl   = _fixture.Create <string>();
            IActionResult result      = await sut.RefreshTokenAsync(tokenType, httpContext, resultUrl);

            Assert.That(result, Is.EqualTo(actionResult));
        }
Beispiel #15
0
        public async Task AcquireTokenAsync_WhenCalledWithSupportedTokenTypeWithoutArguments_AssertAcquireTokenAsyncWasCalledOnTokenHelperForTokenType()
        {
            TokenType           tokenType       = _fixture.Create <TokenType>();
            Mock <ITokenHelper> tokenHelperMock = BuildTokenHelperMock(tokenType);
            ITokenHelperFactory sut             = CreateSut(new[] { tokenHelperMock.Object });

            HttpContext httpContext = CreateHttpContext();
            await sut.AcquireTokenAsync(tokenType, httpContext);

            tokenHelperMock.Verify(m => m.AcquireTokenAsync(
                                       It.Is <HttpContext>(value => value == httpContext),
                                       It.Is <object[]>(value => value != null && value.Length == 0)),
                                   Times.Once);
        }
Beispiel #16
0
        public async Task StoreTokenAsync_WhenCalledWithSupportedTokenType_AssertStoreTokenAsyncWasCalledOnTokenHelperForTokenType()
        {
            TokenType           tokenType       = _fixture.Create <TokenType>();
            Mock <ITokenHelper> tokenHelperMock = BuildTokenHelperMock(tokenType);
            ITokenHelperFactory sut             = CreateSut(new[] { tokenHelperMock.Object });

            HttpContext httpContext = CreateHttpContext();
            string      base64Token = _fixture.Create <string>();
            await sut.StoreTokenAsync(tokenType, httpContext, base64Token);

            tokenHelperMock.Verify(m => m.StoreTokenAsync(
                                       It.Is <HttpContext>(value => value == httpContext),
                                       It.Is <string>(value => string.CompareOrdinal(value, base64Token) == 0)),
                                   Times.Once);
        }
        public async Task HandleLogoutAsync_WhenCalled_AssertHandleLogoutAsyncWasCalledOnEachTokenHelper()
        {
            IEnumerable <Mock <ITokenHelper> > tokenHelperMockCollection = new List <Mock <ITokenHelper> >
            {
                BuildTokenHelperMock()
            };
            ITokenHelperFactory sut = CreateSut(tokenHelperMockCollection.Select(m => m.Object).ToArray());

            HttpContext httpContext = CreateHttpContext();
            await sut.HandleLogoutAsync(httpContext);

            foreach (Mock <ITokenHelper> tokenHelperMock in tokenHelperMockCollection)
            {
                tokenHelperMock.Verify(m => m.HandleLogoutAsync(It.Is <HttpContext>(value => value == httpContext)), Times.Once);
            }
        }
Beispiel #18
0
        public async Task AcquireTokenAsync_WhenCalledWithSupportedTokenTypeWithArguments_AssertAcquireTokenAsyncWasCalledOnTokenHelperForTokenType()
        {
            TokenType           tokenType       = _fixture.Create <TokenType>();
            Mock <ITokenHelper> tokenHelperMock = BuildTokenHelperMock(tokenType);
            ITokenHelperFactory sut             = CreateSut(new[] { tokenHelperMock.Object });

            HttpContext httpContext = CreateHttpContext();

            object[] arguments = _fixture.CreateMany <object>(_random.Next(5, 10)).ToArray();
            await sut.AcquireTokenAsync(tokenType, httpContext, arguments);

            tokenHelperMock.Verify(m => m.AcquireTokenAsync(
                                       It.Is <HttpContext>(value => value == httpContext),
                                       It.Is <object[]>(value => value == arguments)),
                                   Times.Once);
        }
        public AcquireTokenActionFilter(ITokenHelperFactory tokenHelperFactory)
        {
            NullGuard.NotNull(tokenHelperFactory, nameof(tokenHelperFactory));

            _tokenHelperFactory = tokenHelperFactory;
        }