예제 #1
0
        public void AsyncStorageModule_multiMerge_NullValue()
        {
            var array = new[]
            {
                new[] { "testKey", string.Join("", Enumerable.Repeat("a", 1024 * 16)) },
            };

            module.multiMerge(array, callback);
            Assert.That(waitHandle.WaitOne(), Is.True);
            Assert.That(error, Is.Null);
            Assert.That(result, Is.Null);
        }
        public void AsyncStorageModule_multiMerge_NullValue()
        {
            var module     = new AsyncStorageModule();
            var waitHandle = new AutoResetEvent(false);

            var error    = default(JObject);
            var result   = default(JArray);
            var callback = new MockCallback(res =>
            {
                error  = res.Length > 0 ? (JObject)res[0] : null;
                result = res.Length > 1 ? (JArray)res[1] : null;
                waitHandle.Set();
            });

            module.clear(callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array = new[]
            {
                new[] { "testKey", string.Join("", Enumerable.Repeat("a", 1024 * 16)) },
            };

            module.multiMerge(array, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);
        }
        public void AsyncStorageModule_testMultiMerge()
        {
            var mStorage = new AsyncStorageModule();
            var waitHandle = new AutoResetEvent(false);

            var error = default(JObject);
            var result = default(JArray);
            var callback = new MockCallback(res =>
            {
                error = res.Length > 0 ? (JObject)res[0] : null;
                result = res.Length > 1 ? (JArray)res[1] : null;
                waitHandle.Set();
            });

            mStorage.clear(callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var mergeKey = "mergeTest";

            var value = new JObject();
            value.Add("foo1", "bar1");

            value.Add("foo2", new JArray
            {
                "val1",
                "val2",
                3,
            });

            value.Add("foo3", 1001);

            var val = new JObject();
            val.Add("key1", "randomValueThatWillNeverBeUsed");
            value.Add("foo4", val);

            var array = new[]
            {
                new[] 
                {
                    mergeKey,
                    value.ToString(Formatting.None)
                },
            };

            mStorage.multiSet(array, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var str = new string[] { mergeKey };

            mStorage.multiGet(str, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            var expected = JToken.FromObject(array);
            Assert.IsTrue(JToken.DeepEquals(result, expected));

            value.Remove("foo1");
            value.Remove("foo2");
            value.Remove("foo3");
            value.Remove("foo4");

            value.Add("foo1", 1001);

            var val2 = new JObject();
            val2.Add("key1", "val1");
            value.Add("foo2", val2);

            value.Add("foo3", "bar1");

            value.Add("foo4", new JArray
            {
                "val1",
                "val2",
                3
            });

            var newValue = new JObject();
            var val3 = new JObject();
            val3.Add("key2", "val2");
            newValue.Add("foo2", val3);

            var newValue2 = new JObject();
            var val4 = new JObject();
            val4.Add("key1", "val3");
            newValue2.Add("foo2", val4);

            var array2 = new[]
            {
                new[]
                {
                    mergeKey,
                    value.ToString(Formatting.None)
                },
            };

            mStorage.multiMerge(array2, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array3 = new[]
            {
                new[]
                {
                    mergeKey,
                    newValue.ToString(Formatting.None),
                },
            };

            mStorage.multiMerge(array3, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array4 = new[]
            {
                new[]
                {
                    mergeKey,
                    newValue2.ToString(Formatting.None),
                },
            };

            mStorage.multiMerge(array4, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            value.Remove("foo2");
            var val5 = new JObject();
            val5.Add("key1", "val3");
            val5.Add("key2", "val2");
            value.Add("foo2", val5);

            mStorage.multiGet(str, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            expected = JToken.FromObject(array);
            Assert.IsTrue(JToken.DeepEquals(value, JObject.Parse(result.Last.Value<JArray>().Last.Value<string>())));
        }
        public void AsyncStorageModule_multiMerge_NullValue()
        {
            var module = new AsyncStorageModule();
            var waitHandle = new AutoResetEvent(false);

            var error = default(JObject);
            var result = default(JArray);
            var callback = new MockCallback(res =>
            {
                error = res.Length > 0 ? (JObject)res[0] : null;
                result = res.Length > 1 ? (JArray)res[1] : null;
                waitHandle.Set();
            });

            module.clear(callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array = new[]
            {
                new[] { "testKey", string.Join("", Enumerable.Repeat("a", 1024 * 16)) },
            };

            module.multiMerge(array, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);
        }
        public void AsyncStorageModule_testMultiMerge()
        {
            var mStorage   = new AsyncStorageModule();
            var waitHandle = new AutoResetEvent(false);

            var error    = default(JObject);
            var result   = default(JArray);
            var callback = new MockCallback(res =>
            {
                error  = res.Length > 0 ? (JObject)res[0] : null;
                result = res.Length > 1 ? (JArray)res[1] : null;
                waitHandle.Set();
            });

            mStorage.clear(callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var mergeKey = "mergeTest";

            var value = new JObject();

            value.Add("foo1", "bar1");

            value.Add("foo2", new JArray
            {
                "val1",
                "val2",
                3,
            });

            value.Add("foo3", 1001);

            var val = new JObject();

            val.Add("key1", "randomValueThatWillNeverBeUsed");
            value.Add("foo4", val);

            var array = new[]
            {
                new[]
                {
                    mergeKey,
                    value.ToString(Formatting.None)
                },
            };

            mStorage.multiSet(array, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var str = new string[] { mergeKey };

            mStorage.multiGet(str, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            var expected = JToken.FromObject(array);

            Assert.IsTrue(JToken.DeepEquals(result, expected));

            value.Remove("foo1");
            value.Remove("foo2");
            value.Remove("foo3");
            value.Remove("foo4");

            value.Add("foo1", 1001);

            var val2 = new JObject();

            val2.Add("key1", "val1");
            value.Add("foo2", val2);

            value.Add("foo3", "bar1");

            value.Add("foo4", new JArray
            {
                "val1",
                "val2",
                3
            });

            var newValue = new JObject();
            var val3     = new JObject();

            val3.Add("key2", "val2");
            newValue.Add("foo2", val3);

            var newValue2 = new JObject();
            var val4      = new JObject();

            val4.Add("key1", "val3");
            newValue2.Add("foo2", val4);

            var array2 = new[]
            {
                new[]
                {
                    mergeKey,
                    value.ToString(Formatting.None)
                },
            };

            mStorage.multiMerge(array2, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array3 = new[]
            {
                new[]
                {
                    mergeKey,
                    newValue.ToString(Formatting.None),
                },
            };

            mStorage.multiMerge(array3, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            var array4 = new[]
            {
                new[]
                {
                    mergeKey,
                    newValue2.ToString(Formatting.None),
                },
            };

            mStorage.multiMerge(array4, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            Assert.IsNull(result);

            value.Remove("foo2");
            var val5 = new JObject();

            val5.Add("key1", "val3");
            val5.Add("key2", "val2");
            value.Add("foo2", val5);

            mStorage.multiGet(str, callback);
            Assert.IsTrue(waitHandle.WaitOne());
            Assert.IsNull(error);
            expected = JToken.FromObject(array);
            Assert.IsTrue(JToken.DeepEquals(value, JObject.Parse(result.Last.Value <JArray>().Last.Value <string>())));
        }