public async Task ShouldReturnCorrectTaskForSignOutRequest()
        {
            _userSession = Substitute.For <IUserSession>();
            _userSession.GetUserAsync().Returns(Task.FromResult(
                                                    new ClaimsPrincipal(new ClaimsIdentity(new Claim[] { new Claim(JwtClaimTypes.Subject, "test"), new Claim(JwtClaimTypes.AuthenticationMethod, "test"), new Claim(JwtClaimTypes.Name, "test person") }))));
            _validator = new WsFederationRequestValidator(Substitute.For <ILogger <WsFederationRequestValidator> >(),
                                                          new InMemoryClientStore(new[]
            {
                new Client
                {
                    ClientId      = "http://sample-with-policyengine/",
                    ProtocolType  = IdentityServerConstants.ProtocolTypes.WsFederation,
                    RedirectUris  = new [] { "http://localhost" },
                    AllowedScopes = { "openid", "profile" }
                }
            }));

            var endpoint    = new WsFederationEndpoint(_logger, _validator, GetDefaultResponseGenerator(), _userSession);
            var httpContext = new DefaultHttpContext();

            httpContext.Request.Method      = "GET";
            httpContext.Request.QueryString = QueryString.FromUriComponent("?wa=wsignout1.0&wtrealm=http%3a%2f%2fsample-with-policyengine%2f");
            var result = await endpoint.ProcessAsync(httpContext);

            Assert.IsInstanceOfType(result, typeof(WsFederationSignOutResult));
        }
 public WsFederationEndpoint(ILogger <WsFederationEndpoint> logger, IWsFederationRequestValidator validator, IWsFederationResponseGenerator responseGenerator, IUserSession userSession)
 {
     _logger            = logger;
     _validator         = validator;
     _responseGenerator = responseGenerator;
     _userSession       = userSession;
 }
 public WsFederationSigninEndpoint(ILogger <WsFederationSigninEndpoint> logger, IdentityServerOptions options, IWsFederationRequestValidator validator, IWsFederationResponseGenerator responseGenerator, IUserSession userSession)
 {
     _logger            = logger;
     _options           = options;
     _validator         = validator;
     _responseGenerator = responseGenerator;
     _userSession       = userSession;
 }