Пример #1
0
        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);
        }
Пример #2
0
        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;
            });
        }
Пример #5
0
        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("");
            }
        }