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(); }
public void Can_match_through_null_value() { var f = new JObject() { ["Foo"] = new JObject() { ["$is"] = "foo" } }; JsonQueryCompiler.Matches((JObject)null, f).Should().BeFalse(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }