public async Task CreateFilterTestWithMultipleRequests_WithTypedTable() { var client = this.GetClient(); int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(this, numberOfRequests); var filteredClient = new MobileServiceClient(client.MobileAppUri, handler); var typedTable = filteredClient.GetTable <RoundTripTableItem>(); var untypedTable = filteredClient.GetTable("RoundTripTable"); var uniqueId = Guid.NewGuid().ToString("N"); var item = new RoundTripTableItem { Name = uniqueId }; await typedTable.InsertAsync(item); Assert.False(handler.TestFailed); // Cleanup handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=name,id&$filter=name eq '" + uniqueId + "'") as JArray; items.ForEach(async t => await untypedTable.DeleteAsync(t as JObject)); Assert.True(items.Count == numberOfRequests); }
private async Task CreateFilterTestWithMultipleRequests(bool typed) { var client = this.GetClient(); int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(this, numberOfRequests); var filteredClient = new MobileServiceClient(client.MobileAppUri, handler); var typedTable = filteredClient.GetTable <RoundTripTableItem>(); var untypedTable = filteredClient.GetTable("RoundTripTable"); var uniqueId = Guid.NewGuid().ToString("N"); if (typed) { var item = new RoundTripTableItem { Name = uniqueId }; await typedTable.InsertAsync(item); } else { var item = new JObject(new JProperty("name", uniqueId)); await untypedTable.InsertAsync(item); } Assert.False(handler.TestFailed); handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=name,id&$filter=name eq '" + uniqueId + "'"); var array = (JArray)items; bool passed = (array.Count == numberOfRequests); // Cleanup foreach (var item in array) { await untypedTable.DeleteAsync(item as JObject); } Assert.True(passed); }
private async Task CreateFilterTestWithMultipleRequests(bool typed) { Log(string.Format(CultureInfo.InvariantCulture, "### Filter which maps one requests to many - {0} client", typed ? "typed" : "untyped")); var client = this.GetClient(); int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(this, numberOfRequests); Log("Created a filter which will replay the request {0} times", numberOfRequests); var filteredClient = new MobileServiceClient(client.MobileAppUri, handler); var typedTable = filteredClient.GetTable<RoundTripTableItem>(); var untypedTable = filteredClient.GetTable("RoundTripTable"); var uniqueId = Guid.NewGuid().ToString("N"); if (typed) { var item = new RoundTripTableItem { Name = uniqueId }; await typedTable.InsertAsync(item); } else { var item = new JObject(new JProperty("name", uniqueId)); await untypedTable.InsertAsync(item); } if (handler.TestFailed) { Assert.Fail("Filter reported a test failure. Aborting."); } Log("Inserted the data; now retrieving it to see how many items we have inserted."); handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=name,id&$filter=name eq '" + uniqueId + "'"); var array = (JArray)items; bool passed; if (array.Count == numberOfRequests) { Log("Filter inserted correct number of items."); passed = true; } else { Log("Error, filtered client should have inserted {0} items, but there are {1}", numberOfRequests, array.Count); passed = false; } // Cleanup foreach (var item in array) { await untypedTable.DeleteAsync(item as JObject); } Log("Cleanup: removed added items."); if (!passed) { Assert.Fail(""); } }
private static ZumoTest CreateFilterTestWithMultipleRequests(bool typed) { string testName = string.Format(CultureInfo.InvariantCulture, "Filter which maps one requests to many - {0} client", typed ? "typed" : "untyped"); return new ZumoTest(testName, async delegate(ZumoTest test) { var client = ZumoTestGlobals.Instance.Client; int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(test, numberOfRequests); test.AddLog("Created a filter which will replay the request {0} times", numberOfRequests); var filteredClient = new MobileServiceClient(client.ApplicationUri, client.ApplicationKey, handler); var typedTable = filteredClient.GetTable<RoundTripTableItem>(); var untypedTable = filteredClient.GetTable(ZumoTestGlobals.RoundTripTableName); var uniqueId = Guid.NewGuid().ToString("N"); if (typed) { var item = new RoundTripTableItem { String1 = uniqueId }; await typedTable.InsertAsync(item); } else { var item = new JObject(new JProperty("string1", uniqueId)); await untypedTable.InsertAsync(item); } if (handler.TestFailed) { test.AddLog("Filter reported a test failure. Aborting."); return false; } test.AddLog("Inserted the data; now retrieving it to see how many items we have inserted."); handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=string1,id&$filter=string1 eq '" + uniqueId + "'"); var array = (JArray)items; bool passed; if (array.Count == numberOfRequests) { test.AddLog("Filter inserted correct number of items."); passed = true; } else { test.AddLog("Error, filtered client should have inserted {0} items, but there are {1}", numberOfRequests, array.Count); passed = false; } // Cleanup foreach (var item in array) { await untypedTable.DeleteAsync(item as JObject); } test.AddLog("Cleanup: removed added items."); return passed; }); }
private static ZumoTest CreateFilterTestWithMultipleRequests(bool typed) { string testName = string.Format(CultureInfo.InvariantCulture, "Filter which maps one requests to many - {0} client", typed ? "typed" : "untyped"); return(new ZumoTest(testName, async delegate(ZumoTest test) { var client = ZumoTestGlobals.Instance.Client; int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(test, numberOfRequests); test.AddLog("Created a filter which will replay the request {0} times", numberOfRequests); var filteredClient = new MobileServiceClient(client.ApplicationUri, client.ApplicationKey, handler); var typedTable = filteredClient.GetTable <RoundTripTableItem>(); var untypedTable = filteredClient.GetTable(ZumoTestGlobals.RoundTripTableName); var uniqueId = Guid.NewGuid().ToString("N"); if (typed) { var item = new RoundTripTableItem { String1 = uniqueId }; await typedTable.InsertAsync(item); } else { var item = new JObject(new JProperty("string1", uniqueId)); await untypedTable.InsertAsync(item); } if (handler.TestFailed) { test.AddLog("Filter reported a test failure. Aborting."); return false; } test.AddLog("Inserted the data; now retrieving it to see how many items we have inserted."); handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=string1,id&$filter=string1 eq '" + uniqueId + "'"); var array = (JArray)items; bool passed; if (array.Count == numberOfRequests) { test.AddLog("Filter inserted correct number of items."); passed = true; } else { test.AddLog("Error, filtered client should have inserted {0} items, but there are {1}", numberOfRequests, array.Count); passed = false; } // Cleanup foreach (var item in array) { await untypedTable.DeleteAsync(item as JObject); } test.AddLog("Cleanup: removed added items."); return passed; })); }
private async Task CreateFilterTestWithMultipleRequests(bool typed) { Log(string.Format(CultureInfo.InvariantCulture, "### Filter which maps one requests to many - {0} client", typed ? "typed" : "untyped")); var client = this.GetClient(); int numberOfRequests = new Random().Next(2, 5); var handler = new HandlerWithMultipleRequests(this, numberOfRequests); Log("Created a filter which will replay the request {0} times", numberOfRequests); var filteredClient = new MobileServiceClient(client.MobileAppUri, handler); var typedTable = filteredClient.GetTable <RoundTripTableItem>(); var untypedTable = filteredClient.GetTable("RoundTripTable"); var uniqueId = Guid.NewGuid().ToString("N"); if (typed) { var item = new RoundTripTableItem { Name = uniqueId }; await typedTable.InsertAsync(item); } else { var item = new JObject(new JProperty("name", uniqueId)); await untypedTable.InsertAsync(item); } if (handler.TestFailed) { Assert.Fail("Filter reported a test failure. Aborting."); } Log("Inserted the data; now retrieving it to see how many items we have inserted."); handler.NumberOfRequests = 1; // no need to send it multiple times anymore var items = await untypedTable.ReadAsync("$select=name,id&$filter=name eq '" + uniqueId + "'"); var array = (JArray)items; bool passed; if (array.Count == numberOfRequests) { Log("Filter inserted correct number of items."); passed = true; } else { Log("Error, filtered client should have inserted {0} items, but there are {1}", numberOfRequests, array.Count); passed = false; } // Cleanup foreach (var item in array) { await untypedTable.DeleteAsync(item as JObject); } Log("Cleanup: removed added items."); if (!passed) { Assert.Fail(""); } }