public void No_Client_Credentials()
        {
            var validator = new ClientValidator(null, _logger);
            var credential = validator.ValidateHttpRequest(null, null);

            Assert.IsFalse(credential.IsMalformed);
            Assert.IsFalse(credential.IsPresent);
        }
        public void Valid_BasicAuthentication_Request()
        {
            var validator = new ClientValidator(null, _logger);
            var header = new BasicAuthenticationHeaderValue("client", "secret");

            var credential = validator.ValidateHttpRequest(header, null);

            Assert.IsFalse(credential.IsMalformed);
            Assert.IsTrue(credential.IsPresent);
            Assert.AreEqual(Constants.ClientAuthenticationMethods.Basic, credential.Type);

            Assert.AreEqual("client", credential.ClientId);
            Assert.AreEqual("secret", credential.Secret);
        }
        public void Valid_FormPost_Request()
        {
            var validator = new ClientValidator(null, _logger);
            var body = new NameValueCollection();
            body.Add("client_id", "client");
            body.Add("client_secret", "secret");

            var credential = validator.ValidateHttpRequest(null, body);

            Assert.IsFalse(credential.IsMalformed);
            Assert.IsTrue(credential.IsPresent);
            Assert.AreEqual(Constants.ClientAuthenticationMethods.FormPost, credential.Type);

            Assert.AreEqual("client", credential.ClientId);
            Assert.AreEqual("secret", credential.Secret);
        }
        public void BasicAuthentication_Request_With_Empty_Basic_Header()
        {
            var validator = new ClientValidator(null, _logger);
            var header = new AuthenticationHeaderValue("Basic");

            var credential = validator.ValidateHttpRequest(header, null);

            Assert.IsTrue(credential.IsMalformed);
            Assert.IsFalse(credential.IsPresent);
        }
        public void BasicAuthentication_Request_With_Malformed_Credentials_Base64_Encoding_UserName_Only_With_Colon()
        {
            var validator = new ClientValidator(null, _logger);

            var invalidCred = "username:"******"Basic", encoded);

            var credential = validator.ValidateHttpRequest(header, null);

            Assert.IsTrue(credential.IsMalformed);
            Assert.IsFalse(credential.IsPresent);
        }
        public void BasicAuthentication_Request_With_Malformed_Credentials_NoBase64_Encoding()
        {
            var validator = new ClientValidator(null, _logger);
            var header = new AuthenticationHeaderValue("Basic", "somerandomdata");

            var credential = validator.ValidateHttpRequest(header, null);

            Assert.IsTrue(credential.IsMalformed);
            Assert.IsFalse(credential.IsPresent);
        }
        public void BasicAuthentication_Request_With_Unknown_Scheme()
        {
            var validator = new ClientValidator(null, _logger);
            var header = new AuthenticationHeaderValue("Unkown", "data");

            var credential = validator.ValidateHttpRequest(header, null);

            Assert.IsFalse(credential.IsMalformed);
            Assert.IsFalse(credential.IsPresent);
        }