public async Task InvokeCustomAPIResponseWithParamsBodyAndHeader() { TestHttpHandler hijack = new TestHttpHandler(); hijack.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Accepted); hijack.Response.Content = new StringContent("{\"id\":\"2\"}", Encoding.UTF8, "application/json"); var myParams = new Dictionary <string, string>() { { "a", "1" }, { "b", "2" } }; HttpContent content = new StringContent("{\"test\" : \"one\"}", Encoding.UTF8, "application/json"); MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); var myHeaders = new Dictionary <string, string>() { { "x-zumo-test", "test" } }; HttpResponseMessage response = await service.InvokeApiAsync("calculator/add", content, HttpMethod.Post, myHeaders, myParams); Assert.AreEqual(myHeaders.Count, 1); // my headers should not be modified Assert.AreEqual(myHeaders["x-zumo-test"], "test"); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("calculator/add")); Assert.AreEqual(hijack.Request.Headers.GetValues("x-zumo-test").First(), "test"); Assert.IsNotNull(hijack.Request.Content); Assert.AreEqual(hijack.Request.RequestUri.Query, "?a=1&b=2"); Assert.Contains(response.Content.ReadAsStringAsync().Result, "{\"id\":\"2\"}"); }
public async Task InvokeCustomAPIGetJToken() { TestHttpHandler hijack = new TestHttpHandler(); hijack.SetResponseContent("{\"id\":3}"); MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); JToken expected = await service.InvokeApiAsync("calculator/add?a=1&b=2", HttpMethod.Get, null); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("calculator/add")); Assert.AreEqual(hijack.Request.RequestUri.Query, "?a=1&b=2"); Assert.AreEqual(3, (int)expected["id"]); }
public async Task InvokeCustomAPISimple() { TestHttpHandler hijack = new TestHttpHandler(); MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); hijack.SetResponseContent("{\"id\":3}"); IntType expected = await service.InvokeApiAsync <IntType>("calculator/add?a=1&b=2"); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("calculator/add")); Assert.AreEqual(hijack.Request.RequestUri.Query, "?a=1&b=2"); Assert.AreEqual(3, expected.Id); }
public async Task InvokeGenericCustomAPIWithNullResponse_Success() { TestHttpHandler hijack = new TestHttpHandler(); hijack.Response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); hijack.Response.Content = null; MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); IntType expected = await service.InvokeApiAsync <IntType>("testapi"); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("testapi")); Assert.AreEqual(expected, null); }
public async Task InvokeCustomAPIWithEmptyStringResponse_Success() { TestHttpHandler hijack = new TestHttpHandler(); hijack.Response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); hijack.Response.Content = new StringContent("", Encoding.UTF8, "application/json"); MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); JToken expected = await service.InvokeApiAsync("testapi"); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("testapi")); Assert.AreEqual(expected, null); }
public async Task InvokeCustomAPIResponse() { TestHttpHandler hijack = new TestHttpHandler(); hijack.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Accepted); hijack.Response.Content = new StringContent("{\"id\":\"2\"}", Encoding.UTF8, "application/json"); MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); HttpResponseMessage response = await service.InvokeApiAsync("calculator/add?a=1&b=2", null, HttpMethod.Post, null, null); Assert.AreEqual(hijack.Request.RequestUri.LocalPath, mobileAppUriValidator.GetApiUriPath("calculator/add")); Assert.AreEqual(hijack.Request.RequestUri.Query, "?a=1&b=2"); Assert.Contains(response.Content.ReadAsStringAsync().Result, "{\"id\":\"2\"}"); }
public async Task InvokeCustomAPIResponseWithParams() { TestHttpHandler hijack = new TestHttpHandler(); hijack.Response = new HttpResponseMessage(System.Net.HttpStatusCode.Accepted); hijack.Response.Content = new StringContent("{\"id\":\"2\"}", Encoding.UTF8, "application/json"); var myParams = new Dictionary <string, string>() { { "a", "1" }, { "b", "2" } }; MobileServiceClient service = new MobileServiceClient(MobileAppUriValidator.DummyMobileApp, hijack); MobileAppUriValidator mobileAppUriValidator = new MobileAppUriValidator(service); HttpResponseMessage response = await service.InvokeApiAsync("calculator/add", null, HttpMethod.Post, null, myParams); Assert.Equal(mobileAppUriValidator.GetApiUriPath("calculator/add"), hijack.Request.RequestUri.LocalPath); Assert.Equal("?a=1&b=2", hijack.Request.RequestUri.Query); Assert.Null(hijack.Request.Content); Assert.Contains("{\"id\":\"2\"}", response.Content.ReadAsStringAsync().Result); }