public void TestGetAuthorizationResponse() { var someString = Path.GetRandomFileName(); // response is code var codeResponse = OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?code={1}", AddressPrefix, someString))); Assert.AreEqual(new KeyValuePair <string, string>("code", someString), codeResponse, "Expected valid code response"); // response is error var errorResponse = OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?error={1}", AddressPrefix, someString))); Assert.AreEqual(new KeyValuePair <string, string>("error", someString), errorResponse, "Expected valid error response"); // response has valid key with escaped value Assert.AreEqual(new KeyValuePair <string, string>("code", "a B c"), OAuth2Server.GetAuthorizationResponse(new Uri(string.Format("{0}?code=a%20B%20c", AddressPrefix)))); // response has invalid keys var invalidResponse = new Uri(string.Format("{0}?someKey=someValue", AddressPrefix)); Assert.Throws <ArgumentException>(() => OAuth2Server.GetAuthorizationResponse(invalidResponse)); // No response. Uri has no params Assert.Throws <ArgumentException>(() => OAuth2Server.GetAuthorizationResponse(new Uri(AddressPrefix))); }
public void TestGetQueryString() { var validUriWithCode = new Uri(string.Format("{0}?code=someValue", AddressPrefix)); Assert.AreEqual("code=someValue", OAuth2Server.GetQueryString(validUriWithCode)); Assert.Throws <ArgumentException>(() => OAuth2Server.GetQueryString(new Uri(AddressPrefix))); }
public Object Get([FromHeader] string Authorization) { //CountryDatabase.connect(); //return Ok(CountryDatabase.getAllCountryCode()); string response = OAuth2Server.ValidateAccessToken(Authorization); if (response.Equals("Valid")) { CountryDatabase.connect(); return(Ok(CountryDatabase.getAllCountryCode()));//new string[] { "value1", "value2" };} } else if (response.Equals("Missing access_token")) { errorModel err = new errorModel(); err.error = new error(); err.error.status = 401; err.error.message = "Missing access_token"; return(Ok(err)); } else if (response.Equals("Expired access_token")) { HttpContext.Response.StatusCode = 401; errorModel err = new errorModel(); err.error = new error(); err.error.message = "Expired access_token"; err.error.status = 401; return(err); } else { return(Unauthorized()); } }
public void TestGetCodeOrErrorResponsePairOnValidInputs() { Assert.AreEqual(new KeyValuePair <string, string>("code", "codeValue"), OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue")); Assert.AreEqual(new KeyValuePair <string, string>("error", "errorValue"), OAuth2Server.GetCodeOrErrorResponsePair("error=errorValue")); Assert.AreEqual(new KeyValuePair <string, string>("error", " "), OAuth2Server.GetCodeOrErrorResponsePair("error=%20")); }
public void TestGetCodeOrErrorResponsePairOnInvalidInputs() { // The authorization response should consist of a single query parameter. Assert.Throws <ArgumentException>( () => OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue&error=errorValue")); Assert.Throws <ArgumentException>( () => OAuth2Server.GetCodeOrErrorResponsePair("code=codeValue&otherKey=someValue")); Assert.Throws <ArgumentException>( () => OAuth2Server.GetCodeOrErrorResponsePair("error=errorValue&otherKey=someValue")); // The single query parameter should be an equals-separated key/value pair. Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("")); Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("&")); Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("=")); Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code")); Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code=value1=value2")); Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("code&codeValue")); // Key for the single query parameter should be either "code" or "error" Assert.Throws <ArgumentException>(() => OAuth2Server.GetCodeOrErrorResponsePair("someKey=someValue")); }