public async Task <IActionResult> MicrosoftGraphCallback(string code, string state)
        {
            NullGuard.NotNullOrWhiteSpace(code, nameof(code))
            .NotNullOrWhiteSpace(state, nameof(state));

            if (Guid.TryParse(state, out Guid stateIdentifier) == false)
            {
                return(BadRequest());
            }

            return(await _tokenHelperFactory.AcquireTokenAsync(TokenType.MicrosoftGraphToken, HttpContext, stateIdentifier, code));
        }
예제 #2
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));
        }
예제 #3
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);
        }
예제 #4
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);
        }
예제 #5
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'."));
        }
예제 #6
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"));
        }