public void Predicates_Outside() { using (var client = TestDatabase.GetClient("predicates_outside")) { client.Execute(VertexQuery.Create("test").AddProperty("age", 30)).Wait(); Assert.AreEqual(0, client.Execute(VertexQuery.All().Values("age").Is(GraphPredicate.Outside(age - 1, age + 1))).Result.Count()); Assert.AreEqual(1, client.Execute(VertexQuery.All().Values("age").Is(GraphPredicate.Outside(age + 1, age + 2))).Result.Count()); } }
public void Steps_Is() { using (var client = TestDatabase.GetClient("is")) { client.Execute(VertexQuery.Create("foo").AddProperty("age", 30)).Wait(); Assert.AreEqual(client.Execute(VertexQuery.All().Values("age").Is(30).Count()).Result.First(), 1); Assert.AreEqual(client.Execute(VertexQuery.All().Values("age").Is(40).Count()).Result.First(), 0); Assert.AreEqual(client.Execute(VertexQuery.All().Values("age").Is(GraphPredicate.Inside(25, 35)).Count()).Result.First(), 1); } }
public void Predicates_Without() { using (var client = TestDatabase.GetClient("predicates_without")) { int[] empty = { }; int[] values = { age }; int[] outValues = { age + 1 }; client.Execute(VertexQuery.Create("test").AddProperty("age", 30)).Wait(); Assert.ThrowsException <ArgumentException>(() => { GraphPredicate.Without(empty); }); Assert.AreEqual(0, client.Execute(VertexQuery.All().Values("age").Is(GraphPredicate.Without(values))).Result.Count()); Assert.AreEqual(1, client.Execute(VertexQuery.All().Values("age").Is(GraphPredicate.Without(outValues))).Result.Count()); } }
public void Steps_Aggregate() { using (var client = TestDatabase.GetClient("aggregate")) { client.Execute(VertexQuery.Create("test")).Wait(); var query = VertexQuery.All().Aggregate("x").Where(GraphPredicate.Without(new List <object>() { "x" })); Assert.AreEqual(client.Execute(query).Result.Count(), 0); } }
public void Steps_Has() { using (var client = TestDatabase.GetClient("has")) { client.Execute(VertexQuery.Create("foo").AddProperty("key", "value")).Wait(); Assert.AreEqual(client.Execute(VertexQuery.All().Has("key").Count()).Result.First(), 1L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("not_key").Count()).Result.First(), 0L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("key", "value").Count()).Result.First(), 1L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("not_key", "value").Count()).Result.First(), 0L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("key", "not_value").Count()).Result.First(), 0L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("foo", "key", "value").Count()).Result.First(), 1L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("not_foo", "key", "value").Count()).Result.First(), 0L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("key", GraphPredicate.Within(new List <object>() { "value" })).Count()).Result.First(), 1L); Assert.AreEqual(client.Execute(VertexQuery.All().Has("key", GraphPredicate.Without(new List <object>() { "value" })).Count()).Result.First(), 0L); } }
/// <summary> /// Filters results based on the provided condition /// </summary> public Query Is(GraphPredicate predicate) { Steps.Add("is(" + predicate.ToString() + ")"); return(this as Query); }
/// <summary> /// Filters results based on a sub query /// </summary> public Query Where(GraphPredicate condition) { Steps.Add("where(" + condition.ToString() + ")"); return(this as Query); }
/// <summary> /// Remove the traverser if its element does not have a key value that satisfies the bi-predicate. /// </summary> /// <param name="key">The key to filter by</param> /// <param name="predicate">The predicate to filter by</param> public Query Has(string key, GraphPredicate predicate) { Steps.Add("has('" + Sanitize(key) + "', " + predicate.ToString() + ")"); return(this as Query); }
public void Steps_Where() { using (var client = TestDatabase.GetClient("where")) { client.Execute(VertexQuery.Create("one")).Wait(); client.Execute(VertexQuery.Create("two")).Wait(); client.Execute(VertexQuery.Create("three")).Wait(); client.Execute(VertexQuery.All().HasLabel("one").AddEdge("to", DirectionStep.To(VertexQuery.Find("two")))).Wait(); client.Execute(VertexQuery.All().HasLabel("two").AddEdge("to", DirectionStep.To(VertexQuery.Find("three")))).Wait(); var query = VertexQuery.All().HasLabel("one").As("a").Both().Both().Where(GraphPredicate.NotEqualTo("a")); var result = client.Execute(query).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.First().label, "three"); } }