public void TestContentTypeOverride() { RequestMap requestMap = new RequestMap("{\n\"id\":\"1\"\n}"); RequestMap responseMap = new RequestMap("{\"Account\":{\"Status\":\"true\",\"Listed\":\"true\",\"ReasonCode\":\"S\",\"Reason\":\"STOLEN\"}}"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.OK, responseMap)); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081", null, true, "text/json"); RestyRequest request = controller.GetRequest(config, metadata, new TestBaseObject(requestMap)); Assert.AreEqual("http://locahost:8081/test1", request.AbsoluteUrl.ToString()); Assert.AreEqual(true, request.HasBody); Assert.AreEqual("POST", request.Method.ToString()); Assert.AreEqual(true, request.Parameters.Exists(i => i.Name.Equals("Content-Type"))); Assert.AreEqual(true, request.Parameters.Exists(i => i.Name.Equals("Content-Type"))); Assert.AreEqual("text/json; charset=utf-8", request.Parameters.Find(i => i.Name.Equals("Accept")).Value.ToString()); Assert.AreEqual("text/json; charset=utf-8", request.Parameters.Find(i => i.Name.Equals("Content-Type")).Value.ToString()); String authentication = request.Parameters.Find(i => i.Name.Equals("Authorization")).Value.ToString(); Assert.AreEqual(true, authentication.Contains("oauth_body_hash")); }
public void Test204() { RequestMap responseMap = new RequestMap(" { \"user.name\":\"andrea\", \"user.surname\":\"rizzini\" }"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.NoContent, "")); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); IDictionary <String, Object> result = controller.Execute(config, metadata, new TestBaseObject(responseMap)); Assert.IsTrue(result.Count == 0); }
public void Test500_InvalidRequestException() { RequestMap responseMap = new RequestMap("{\"Errors\":{\"Error\":[{\"Source\":\"OAuth.ConsumerKey\",\"ReasonCode\":\"INVALID_CLIENT_ID\",\"Description\":\"Something went wrong\",\"Recoverable\":false,\"Details\":null}]}}"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.InternalServerError, responseMap)); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); ApiException ex = Assert.Throws <ApiException> (() => controller.Execute(config, metadata, new TestBaseObject(responseMap))); Assert.That(ex.Message, Is.EqualTo("Something went wrong")); Assert.That(ex.ReasonCode, Is.EqualTo("INVALID_CLIENT_ID")); Assert.That(ex.Source, Is.EqualTo("OAuth.ConsumerKey")); Assert.That(ex.Recoverable, Is.EqualTo(false)); }
public void Test405_NotAllowedExceptionCaseInsensitive() { RequestMap responseMap = new RequestMap("{\"errors\":{\"error\":{\"source\":\"System\",\"reasonCode\":\"METHOD_NOT_ALLOWED\",\"description\":\"Method not Allowed\",\"Recoverable\":\"false\"}}}"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.MethodNotAllowed, responseMap)); //new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); ApiException ex = Assert.Throws <ApiException>(() => controller.Execute(config, metadata, new TestBaseObject(responseMap))); Assert.That(ex.Message, Is.EqualTo("Method not Allowed")); Assert.That(ex.ReasonCode, Is.EqualTo("METHOD_NOT_ALLOWED")); Assert.That(ex.Source, Is.EqualTo("System")); Assert.That(ex.Recoverable, Is.EqualTo(false)); }
public void Test200ShowById() { RequestMap requestMap = new RequestMap("{\n\"id\":\"1\"\n}"); RequestMap responseMap = new RequestMap("{\"Account\":{\"Status\":\"true\",\"Listed\":\"true\",\"ReasonCode\":\"S\",\"Reason\":\"STOLEN\"}}"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.OK, responseMap)); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "read", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); IDictionary <String, Object> result = controller.Execute(config, metadata, new TestBaseObject(requestMap)); RequestMap responseMapFromResponse = new RequestMap(result); Assert.AreEqual("true", responseMapFromResponse["Account.Status"]); Assert.AreEqual("STOLEN", responseMapFromResponse["Account.Reason"]); }
public void Test400_InvalidRequestExceptionCaseInsensitive_JSONNative() { String response = "[{\"source\":\"validation\",\"reasonCode\":\"INVALID_TYPE\",\"description\":\"The supplied field: 'date' is of an unsupported format\",\"Recoverable\":false,\"Details\":null}]"; TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.BadRequest, response)); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); ApiException ex = Assert.Throws <ApiException>(() => controller.Execute(config, metadata, new TestBaseObject())); Assert.That(ex.Message, Is.EqualTo("The supplied field: 'date' is of an unsupported format")); Assert.That(ex.ReasonCode, Is.EqualTo("INVALID_TYPE")); Assert.That(ex.Source, Is.EqualTo("validation")); Assert.That(ex.Recoverable, Is.EqualTo(false)); }
public void Test200WithList() { RequestMap responseMap = new RequestMap("[ { \"name\":\"andrea\", \"surname\":\"rizzini\" } ]"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.OK, responseMap)); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); //new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); IDictionary <String, Object> result = controller.Execute(config, metadata, new TestBaseObject()); RequestMap responseMapFromResponse = new RequestMap(result); Assert.IsTrue(responseMapFromResponse.ContainsKey("list")); Assert.AreEqual(typeof(List <Dictionary <String, Object> >), responseMapFromResponse ["list"].GetType()); Assert.AreEqual("andrea", responseMapFromResponse["list[0].name"]); Assert.AreEqual("rizzini", responseMapFromResponse["list[0].surname"]); }
public void Test200WithMap() { RequestMap responseMap = new RequestMap(" { \"user.name\":\"andrea\", \"user.surname\":\"rizzini\" }"); TestApiController controller = new TestApiController(); controller.SetRestClient(mockClient(HttpStatusCode.OK, responseMap)); var config = new OperationConfig("/test1", "create", headerList, queryList); var metadata = new OperationMetadata("0.0.1", "http://locahost:8081"); IDictionary <String, Object> result = controller.Execute(config, metadata, new TestBaseObject(responseMap)); RequestMap responseMapFromResponse = new RequestMap(result); Assert.IsTrue(responseMapFromResponse.ContainsKey("user")); Assert.IsTrue(responseMapFromResponse.ContainsKey("user.name")); Assert.IsTrue(responseMapFromResponse.ContainsKey("user.surname")); Assert.AreEqual("andrea", responseMapFromResponse["user.name"]); Assert.AreEqual("rizzini", responseMapFromResponse["user.surname"]); }
public void TestEnvironments() { TestApiController controller = new TestApiController(); ResourceConfig instance = ResourceConfig.Instance; ApiConfig.SetEnvironment(Environment.SANDBOX); // new Tuple<string, string, List<string>, List<string>>("/test1", null, headerList, queryList); var config = new OperationConfig("/atms/v1/#env/locations", "read", headerList, queryList); var metadata = new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()); //default Assert.AreEqual("https://sandbox.api.mastercard.com/atms/v1/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.PRODUCTION_ITF); Assert.AreEqual("https://api.mastercard.com/atms/v1/itf/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.PRODUCTION_MTF); Assert.AreEqual("https://api.mastercard.com/atms/v1/mtf/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.SANDBOX); Assert.AreEqual("https://sandbox.api.mastercard.com/atms/v1/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.PRODUCTION); Assert.AreEqual("https://api.mastercard.com/atms/v1/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.STAGE); Assert.AreEqual("https://stage.api.mastercard.com/atms/v1/locations?Format=JSON", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext()), new RequestMap()).ToString()); ApiConfig.SetEnvironment(Environment.STAGE); Assert.AreEqual("https://stage.api.mastercard.com/atms/v1/locations", controller.GetURL(config, new OperationMetadata("0.0.1", instance.GetHost(), instance.GetContext(), true), new RequestMap()).ToString()); instance.setHostOverride(); }