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); } }
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")); }