コード例 #1
0
        public void Can_navigate_two_paths_from_starting_point()
        {
            var e = new JObject()
            {
                ["Root"] = new JObject()
                {
                    ["PropertyOne"] = new JObject()
                    {
                        ["Value"] = "val2",
                    },
                    ["PropertyTwo"] = new JObject()
                    {
                        ["SubProperty"] = new JObject()
                        {
                            ["Category"] = "test",
                            ["Type"]     = "Value"
                        }
                    }
                }
            };

            var q = new JObject()
            {
                ["^.Root.PropertyOne.Value"] = "val2",
                ["<.Type"] = "Value"
            };

            JsonQueryCompiler.Matches(e["Root"]["PropertyOne"]["Value"], q).Should().BeFalse();
            JsonQueryCompiler.Matches(e["Root"]["PropertyTwo"]["SubProperty"]["Type"], q).Should().BeTrue();
        }
コード例 #2
0
        public void Can_match_through_null_value()
        {
            var f = new JObject()
            {
                ["Foo"] = new JObject()
                {
                    ["$is"] = "foo"
                }
            };

            JsonQueryCompiler.Matches((JObject)null, f).Should().BeFalse();
        }
コード例 #3
0
        public void Can_navigate_to_parent_of_null_and_get_null()
        {
            var e = new JObject()
            {
            };

            var q = new JObject()
            {
                ["<.<.<.Value"] = "Value"
            };

            JsonQueryCompiler.Matches(e, q).Should().BeFalse();
        }
コード例 #4
0
        public void Can_match_nested_property_through_null_dictionary_on_strongly_typed_object()
        {
            var o = new ObjectA()
            {
            };

            var e = new JObject()
            {
                ["Bar.Item1.Foo"] = new JObject()
                {
                    ["$in"] = new JArray("a", "b"),
                }
            };

            JsonQueryCompiler.Matches(o, e).Should().BeFalse();
        }
コード例 #5
0
        public void Can_navigate_to_parent()
        {
            var e = new JObject()
            {
                ["Property"] = new JObject()
                {
                    ["Value"] = "Value"
                }
            };

            var q = new JObject()
            {
                ["<.Value"] = "Value"
            };

            JsonQueryCompiler.Matches(e["Property"]["Value"], q).Should().BeTrue();
        }
コード例 #6
0
        public void Can_match_through_null_property_value_two_layers()
        {
            var d = new JObject()
            {
                ["Foo"] = null
            };

            var f = new JObject()
            {
                ["Foo.Bar"] = new JObject()
                {
                    ["$is"] = "foo"
                }
            };

            JsonQueryCompiler.Matches(d, f).Should().BeFalse();
        }
コード例 #7
0
        public void Can_match_nested_property_through_null_returned_by_dictionary()
        {
            var d = new
            {
                Bar = new Dictionary <string, Tuple <string, string> >()
                {
                    ["Foo"] = null
                }
            };

            var e = new JObject()
            {
                ["Bar.Foo.Item1"] = new JObject()
                {
                    ["$in"] = new JArray("a", "b"),
                }
            };

            JsonQueryCompiler.Matches(d, e).Should().BeFalse();
        }
コード例 #8
0
        public void Can_match_nested_property_value_not_equal_to()
        {
            var d = new JObject()
            {
                ["Foo"] = new JObject()
                {
                    ["Bar"] = "dsa"
                }
            };

            var e = new JObject()
            {
                ["Foo.Bar"] = new JObject()
                {
                    ["$is"] = "asd"
                }
            };

            JsonQueryCompiler.Matches(d, e).Should().BeFalse();
        }
コード例 #9
0
        public void Can_match_nested_property_value()
        {
            var d = new JObject()
            {
                ["Foo"] = new JObject()
                {
                    ["Bar"] = "string"
                }
            };

            var e = new JObject()
            {
                ["Foo.Bar"] = new JObject()
                {
                    ["$is"] = "string"
                }
            };

            JsonQueryCompiler.Matches(d, e).Should().BeTrue();
        }