public async Task Valid_protocol_response_should_be_handled_correctly()
        {
            var handler = new NetworkHandler(HttpStatusCode.OK, "ok");

            var client = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(false, response.IsError);
            Assert.AreEqual(ResponseErrorType.None, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode);
        }
Exemple #2
0
        public async Task Exception_should_be_handled_correctly()
        {
            var handler = new NetworkHandler(HttpStatusCode.InternalServerError, "exception");
            var client  = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Http, response.ErrorType);
            Assert.IsNotNull(response.Error);
            Assert.AreEqual("exception", response.Error);
        }
        public async Task Http_error_should_be_handled_correctly()
        {
            var handler = new NetworkHandler(HttpStatusCode.NotFound, "not found");

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Http, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.NotFound, response.HttpStatusCode);
            Assert.AreEqual("not found", response.Error);
        }
        public async Task Malformed_response_document_should_be_handled_correctly()
        {
            var document = "invalid";
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new UserInfoClient(
                Endpoint,
                innerHttpMessageHandler: handler);

            var response = await client.GetAsync("token");


            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Exception, response.ErrorType);
            Assert.AreEqual("invalid", response.Raw);
            Assert.IsNotNull(response.Exception);
        }
Exemple #5
0
        public async Task Valid_protocol_response_should_be_handled_correctly()
        {
            var document = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "documents", "success_userinfo_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new UserInfoClient(
                Endpoint,
                innerHttpMessageHandler: handler);

            var response = await client.GetAsync("token");


            Assert.AreEqual(false, response.IsError);
            Assert.AreEqual(ResponseErrorType.None, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode);
            Assert.IsNotNull(response.Claims);
        }
        public async Task Http_error_should_be_handled_correctly()
        {
            var handler = new NetworkHandler(HttpStatusCode.NotFound, "not found");

            var client = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Http, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.NotFound, response.HttpStatusCode);
            Assert.AreEqual("not found", response.Error);
        }
        public async Task Exception_should_be_handled_correctly()
        {
            var handler = new NetworkHandler(HttpStatusCode.InternalServerError, "exception");

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Http, response.ErrorType);
            Assert.AreEqual("exception", response.Error);
            Assert.IsNotNull(response.Error);
        }
        public DiscoveryClientTests()
        {
            var discoFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Documents", "discovery.json");//Nimisha
            var document      = File.ReadAllText(discoFileName);

            var jwksFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Documents", "discovery.json");//Nimisha
            var jwks         = File.ReadAllText(jwksFileName);

            _successHandler = new NetworkHandler(request =>
            {
                if (request.RequestUri.AbsoluteUri.EndsWith("jwks"))
                {
                    return(jwks);
                }

                return(document);
            }, HttpStatusCode.OK);
        }
        public async Task Malformed_response_document_should_be_handled_correctly()
        {
            var document = "invalid";
            var handler  = new NetworkHandler(document, HttpStatusCode.BadRequest);

            var client = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Exception, response.ErrorType);
            Assert.AreEqual("invalid", response.Raw);
            Assert.IsNotNull(response.Exception);
        }
        public async Task Valid_protocol_error_should_be_handled_correctly()
        {
            var document = File.ReadAllText(Path.Combine(Directory.GetCurrentDirectory(), "Documents", "failure_token_revocation_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.BadRequest);

            var client = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Protocol, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.BadRequest, response.HttpStatusCode);
            Assert.AreEqual("error", response.Error);
        }
        public async Task Valid_protocol_error_should_be_handled_correctly()
        {
            var document = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Documents", "failure_token_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.BadRequest);

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Protocol, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.BadRequest, response.HttpStatusCode);
            Assert.AreEqual("error", response.Error);
            Assert.AreEqual("error_description", response.ErrorDescription);
        }
        public async Task Setting_basic_authentication_style_should_send_basic_authentication_header()
        {
            var document = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Documents", "success_token_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");

            var request = handler.Request;

            Assert.IsNotNull(request.Headers.Authorization);
            Assert.AreEqual("Basic", request.Headers.Authorization.Scheme.ToString());
            Assert.AreEqual(Convert.ToBase64String(Encoding.UTF8.GetBytes("clientid:clientsecret")), request.Headers.Authorization.Parameter);
        }
Exemple #13
0
        public DiscoveryClientTests()
        {
            var           binDir   = AppDomain.CurrentDomain.BaseDirectory;
            FileInfo      fileInfo = new FileInfo(binDir);
            DirectoryInfo dir      = fileInfo.Directory.Parent.Parent;

            var document = File.ReadAllText(Path.Combine(dir.FullName, "Intuit.Ipp.OAuth2PlatformClient.Test\\Documents", "discovery.json"));

            var jwks = File.ReadAllText(Path.Combine(dir.FullName, "Intuit.Ipp.OAuth2PlatformClient.Test\\Documents", "discovery.json"));

            _successHandler = new NetworkHandler(request =>
            {
                if (request.RequestUri.AbsoluteUri.EndsWith("jwks"))
                {
                    return(jwks);
                }

                return(document);
            }, HttpStatusCode.OK);
        }
        public async Task Malformed_response_document_should_be_handled_correctly()
        {
            var document = "invalid";
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");


            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Exception, response.ErrorType);
            Assert.AreEqual("invalid", response.Raw);
            //Assert.AreEqual("error", response.Error);
            Assert.IsNotNull(response.Exception);
        }
        public async Task Valid_protocol_response_should_be_handled_correctly()
        {
            var           binDir   = AppDomain.CurrentDomain.BaseDirectory;
            FileInfo      fileInfo = new FileInfo(binDir);
            DirectoryInfo dir      = fileInfo.Directory.Parent.Parent;

            var document = File.ReadAllText(Path.Combine(dir.FullName, "Intuit.Ipp.OAuth2PlatformClient.Test\\Documents", "success_userinfo_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new UserInfoClient(
                Endpoint,
                innerHttpMessageHandler: handler);

            var response = await client.GetAsync("token");


            Assert.AreEqual(false, response.IsError);
            Assert.AreEqual(ResponseErrorType.None, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode);
            Assert.IsNotNull(response.Claims);
        }
        public async Task Valid_protocol_response_should_be_handled_correctly()
        {
            var document = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Documents", "success_token_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.OK);

            var client = new TokenClient(
                Endpoint,
                "clientid",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RequestTokenFromCodeAsync("123", "https://server/callback");

            Assert.AreEqual(false, response.IsError);
            Assert.AreEqual(ResponseErrorType.None, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.OK, response.HttpStatusCode);
            Assert.AreEqual(3600, response.AccessTokenExpiresIn);
            Assert.AreEqual(15552000, response.RefreshTokenExpiresIn);
            Assert.AreEqual("access_token", response.AccessToken);
            Assert.AreEqual("refresh_token", response.RefreshToken);
            Assert.AreEqual("id_token", response.IdentityToken);
        }
        public async Task Valid_protocol_error_should_be_handled_correctly()
        {
            var           binDir   = AppDomain.CurrentDomain.BaseDirectory;
            FileInfo      fileInfo = new FileInfo(binDir);
            DirectoryInfo dir      = fileInfo.Directory.Parent.Parent;

            var document = File.ReadAllText(Path.Combine(dir.FullName, "Intuit.Ipp.OAuth2PlatformClient.Test\\Documents", "failure_token_revocation_response.json"));
            var handler  = new NetworkHandler(document, HttpStatusCode.BadRequest);

            var client = new TokenRevocationClient(
                Endpoint,
                "client",
                "clientsecret",
                innerHttpMessageHandler: handler);

            var response = await client.RevokeAccessTokenAsync("token");

            Assert.AreEqual(true, response.IsError);
            Assert.AreEqual(ResponseErrorType.Protocol, response.ErrorType);
            Assert.AreEqual(HttpStatusCode.BadRequest, response.HttpStatusCode);
            Assert.AreEqual("error", response.Error);
        }