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);
            }
        }
コード例 #2
0
        public async Task <IActionResult> Logout(string returnUrl = null)
        {
            await _tokenHelperFactory.HandleLogoutAsync(HttpContext);

            await HttpContext.SignOutAsync("OSDevGrp.OSIntranet.Internal");

            if (string.IsNullOrWhiteSpace(returnUrl))
            {
                return(LocalRedirect("/Home/Index"));
            }

            Uri returnUri = ConvertToAbsoluteUri(returnUrl);

            if (returnUri == null || _trustedDomainHelper.IsTrustedDomain(returnUri) == false)
            {
                return(BadRequest());
            }

            return(Redirect(returnUri.AbsoluteUri));
        }
        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"));
        }