public async Task ExecuteAsync_Should_Return_LoggedOutOutput_When_Account_Is_Not_Authenticated() { const string logoutId = "logoutId"; var cp = new ClaimsPrincipal(); var logoutRequest = new LogoutRequest(true, string.Empty, string.Empty, Guid.NewGuid(), Guid.NewGuid()); var expectedResult = new LoggedOutOutput(logoutId, logoutRequest.PostLogoutRedirectUri, logoutRequest.SignOutIFrameUrl, logoutRequest.ClientId, null); _logoutServiceMock.Setup(x => x.GetLogoutRequestAsync(It.IsAny <string>())) .ReturnsAsync(logoutRequest); _claimsPrincipalServiceMock.Setup(x => x.GetClaimsPrincipal()).Returns(cp); var result = await _interactor.ExecuteAsync(logoutId); result.Should().BeEquivalentTo(expectedResult); }
public async Task <IActionResult> Logout(string logoutId, string processLogout) { if (string.Equals(processLogout, bool.TrueString, StringComparison.InvariantCultureIgnoreCase)) { var loggedOutOutput = await _loggedOutInteractor.ExecuteAsync(logoutId); var loggedOutViewModel = _mapper.Map <LoggedOutOutput, LoggedOutViewModel>(loggedOutOutput); if (loggedOutViewModel.TriggerExternalSignOut) { var url = Url.Action("Logout", new { logoutId = loggedOutViewModel.LogoutId }); return(SignOut(new AuthenticationProperties { RedirectUri = url }, loggedOutViewModel.ExternalAuthenticationScheme)); } return(View("LoggedOut", loggedOutViewModel)); } return(RedirectToAction("Index", "Home")); }