コード例 #1
0
        public void Json_Read_Write_Relationship_Returns()
        {
            dynamic item = new {
                id       = "100",
                name     = "name100",
                contains = new {
                    id     = "200",
                    name   = "name200",
                    values = new dynamic[] {
                        new
                        {
                            id   = "300",
                            name = "name300"
                        },
                        new
                        {
                            id   = "400",
                            name = "name400"
                        }
                    }
                }
            };

            StoreProcessor.Assert("app1", JToken.FromObject(item), false);
            var rsp = StoreProcessor.GetSubject("app1", "100", null, 3);

            Assert.IsTrue(JToken.DeepEquals(JToken.FromObject(item), rsp));
        }
コード例 #2
0
        public void Patch_Single_Item_Array_With_Triple_Returns()
        {
            var doc = new {
                id       = "100",
                name     = "Device 100",
                contains = new object[] {
                    new
                    {
                        id   = "nested0",
                        name = "Nested 0"
                    }
                }
            };

            var patch = new {
                remove = new {
                    id        = "100",
                    otherName = "Other Name",
                    contains  = new object[]
                    {
                        new
                        {
                            id = "nested0",
                        }
                    }
                },
                add = new {
                    id       = "100",
                    contains = new object[]
                    {
                        new
                        {
                            id   = "nested4",
                            name = "Nested 4"
                        }
                    }
                }
            };

            var expected = new {
                id       = "100",
                name     = "Device 100",
                contains = new object[] {
                    new
                    {
                        id   = "nested4",
                        name = "Nested 4"
                    }
                }
            };

            StoreProcessor.Assert("app3", JObject.FromObject(doc), false);
            StoreProcessor.PatchTriple("app3", JObject.FromObject(patch));

            var rsp            = StoreProcessor.GetSubject("app3", "100", null, 3);
            var rspString      = TripleConverter.FromJson(rsp).ToArray();
            var expectedString = TripleConverter.FromJson(JObject.FromObject(expected)).ToArray();

            CollectionAssert.AreEquivalent(rspString, expectedString);
        }
コード例 #3
0
        public ObjectQueryExecutorTest()
        {
            dynamic item1 = new
            {
                id       = "100",
                name     = "name100",
                age      = 20,
                contains = new
                {
                    id     = "200",
                    name   = "name200",
                    values = new dynamic[] {
                        new
                        {
                            id   = "300",
                            name = "name300",
                            age  = 30,
                        },
                        new
                        {
                            id   = "400",
                            name = "name400"
                        }
                    }
                }
            };

            dynamic item2 = new
            {
                id       = "500",
                name     = "name500",
                age      = 20,
                contains = new
                {
                    id     = "600",
                    name   = "name600",
                    values = new dynamic[] {
                        new
                        {
                            id   = "700",
                            name = "name700",
                            age  = 30,
                        },
                        new
                        {
                            id       = "800",
                            name     = "name800",
                            contains = new
                            {
                                id = "600"
                            }
                        }
                    }
                }
            };

            StoreProcessor.Assert("app1", JToken.FromObject(item1), false);
            StoreProcessor.Assert("app1", JToken.FromObject(item2), false);
        }
コード例 #4
0
ファイル: ArrayTest.cs プロジェクト: jobeland/hexadb
        public ArrayTest()
        {
            _item1 = new
            {
                id     = "simplearray",
                values = new int[] { 10, 20, 10, 11, 29, 12 }
            };

            StoreProcessor.Assert("app1", JToken.FromObject(_item1), false);
        }
コード例 #5
0
        public void Patch_With_Values_Returns()
        {
            var doc = new
            {
                id   = "100",
                name = "Device 100",
                data = new
                {
                    temp     = 50,
                    humidity = 70,
                    pressure = 1001.02,
                    region   = "seattle/1"
                }
            };

            var patch = new
            {
                id   = "100",
                data = new
                {
                    temp     = 55,
                    pressure = 1001.03,
                    region   = "seattle/1"
                }
            };

            var expected = new
            {
                id   = "100",
                name = "Device 100",
                data = new
                {
                    id       = "100#data",
                    temp     = 55,
                    humidity = 70,
                    pressure = 1001.03,
                    region   = "seattle/1",
                },
            };

            StoreProcessor.Assert("app3", JObject.FromObject(doc), false);
            StoreProcessor.PatchJson("app3", JObject.FromObject(patch));

            var rsp            = StoreProcessor.GetSubject("app3", "100", null, 3);
            var rspString      = TripleConverter.FromJson(rsp).ToArray();
            var expectedString = TripleConverter.FromJson(JObject.FromObject(expected)).ToArray();

            CollectionAssert.AreEquivalent(rspString, expectedString);
        }
コード例 #6
0
        public ObjectQueryExecutorPagedTest()
        {
            for (int i = 0; i < 100; i++)
            {
                var item = new
                {
                    id       = $"i{i.ToString("D2")}",
                    name     = $"name{i.ToString("D2")}",
                    param    = i,
                    contains = new
                    {
                        id     = "c0",
                        name   = "namec0",
                        values = new
                        {
                            id   = "v0",
                            name = "namev0"
                        }
                    }
                };
                StoreProcessor.Assert("app1", JToken.FromObject(item), false);
            }

            for (int j = 0; j < 100; j++)
            {
                var item = new
                {
                    id       = $"j{j.ToString("D2")}",
                    name     = $"name{j.ToString("D2")}",
                    param    = j,
                    contains = new
                    {
                        id     = "c1",
                        name   = "namec1",
                        values = new
                        {
                            id   = "v1",
                            name = "namev1"
                        }
                    }
                };
                StoreProcessor.Assert("app1", JToken.FromObject(item), false);
            }
        }
コード例 #7
0
        public StoreProcessorTest()
        {
            _items = new object[10];
            foreach (var i in Enumerable.Range(0, 10))
            {
                dynamic item = new {
                    id   = i.ToString(),
                    name = $"name{i}",
                    age  = i * 5
                };
                _items[i] = item;
            }

            StoreProcessor.Assert("app1", JToken.FromObject(_items), false);

            dynamic item1 = new {
                id       = "100",
                name     = "name100",
                age      = 20,
                contains = new {
                    id     = "200",
                    name   = "name200",
                    values = new dynamic[] {
                        new
                        {
                            id   = "300",
                            name = "name300",
                            age  = 30,
                        },
                        new
                        {
                            id   = "400",
                            name = "name400"
                        }
                    }
                }
            };

            dynamic item2 = new {
                id       = "500",
                name     = "name500",
                age      = 20,
                contains = new {
                    id     = "600",
                    name   = "name600",
                    values = new dynamic[] {
                        new
                        {
                            id   = "700",
                            name = "name700",
                            age  = 30,
                        },
                        new
                        {
                            id       = "800",
                            name     = "name800",
                            contains = new
                            {
                                id = "600"
                            }
                        }
                    }
                }
            };

            StoreProcessor.Assert("app2", JToken.FromObject(item1), false);
            StoreProcessor.Assert("app2", JToken.FromObject(item2), false);
        }
コード例 #8
0
        public ObjectQueryIncomingTest()
        {
            dynamic item1 = new
            {
                id       = "100",
                name     = "name100",
                age      = 20,
                contains = new
                {
                    id     = "200",
                    name   = "name200",
                    values = new dynamic[] {
                        new
                        {
                            id   = "300",
                            name = "name300",
                            age  = 30,
                        },
                        new
                        {
                            id   = "400",
                            name = "name400"
                        }
                    }
                }
            };

            dynamic item2 = new
            {
                id       = "500",
                name     = "name500",
                age      = 20,
                contains = new
                {
                    id     = "600",
                    name   = "name600",
                    values = new dynamic[] {
                        new
                        {
                            id   = "700",
                            name = "name700",
                            age  = 30,
                        },
                        new
                        {
                            id       = "800",
                            name     = "name800",
                            contains = new
                            {
                                id = "600"
                            }
                        }
                    }
                }
            };

            StoreProcessor.Assert("app1", JToken.FromObject(item1), false);
            StoreProcessor.Assert("app1", JToken.FromObject(item2), false);

            for (int i = 0; i < 100; i++)
            {
                var item = new
                {
                    id       = "root001",
                    name     = "root1",
                    contains = new
                    {
                        id     = "c1",
                        name   = "namec1",
                        values = new
                        {
                            id   = $"i{i.ToString("D2")}",
                            name = $"name{i.ToString("D2")}",
                        }
                    }
                };
                StoreProcessor.Assert("app2", JToken.FromObject(item), false);
            }

            for (int i = 0; i < 100; i++)
            {
                var item = new
                {
                    id       = "root002",
                    name     = "root2",
                    contains = new
                    {
                        id     = "c2",
                        name   = "namec2",
                        values = new
                        {
                            id   = $"j{i.ToString("D2")}",
                            name = $"name{i.ToString("D2")}",
                        }
                    }
                };
                StoreProcessor.Assert("app2", JToken.FromObject(item), false);
            }
        }
コード例 #9
0
        public ObjectQueryStarPathTest()
        {
            var text = File.ReadAllText(Path.Combine("TestInput", "region.json"));

            StoreProcessor.Assert("app1", JToken.Parse(text), true);
        }