public static TestDatabase GetClient(string collection) { TestDatabase client = new TestDatabase("https://localhost:8081/", "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="); client.CreateDatabaseIfNotExistsAsync(db_name).Wait(); client.collection = collection; client.CreateDocumentCollectionIfNotExistsAsync(db_name, collection).Wait(); client.Open(db_name, collection).Wait(); var query = VertexQuery.All().Drop(); client.Execute(query).Wait(); return(client); }
public void Steps_AddE() { using (var client = TestDatabase.GetClient("addE")) { // Setup var vertex1 = client.Execute(VertexQuery.Create("vertex1")).Result; var vertex2 = client.Execute(VertexQuery.Create("vertex2")).Result; // Test var query = VertexQuery.All().HasLabel("vertex1").AddEdge("edge1", DirectionStep.To(vertex2.First().id)); client.Execute(query).Wait(); // Verify Assert.AreEqual(client.Execute(VertexQuery.All().HasLabel("vertex1").Out()).Result.First().id, vertex2.First().id); } }
public void Steps_SimplePath() { using (var client = TestDatabase.GetClient("simple_path")) { 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(); Assert.AreEqual(client.Execute(VertexQuery.All().HasLabel("one").Both().Both().Count()).Result.First(), 2L); Assert.AreEqual(client.Execute(VertexQuery.All().HasLabel("one").Both().Both().SimplePath().Count()).Result.First(), 1L); } }
public void Steps_Constant() { using (var client = TestDatabase.GetClient("constant")) { client.Execute(VertexQuery.Create("foo").AddProperty("name", "steve")).Wait(); var baseQuery = VertexQuery.All(); var conditionQuery = baseQuery.CreateSubQuery().HasLabel("bar"); var trueQuery = baseQuery.CreateSubQuery().Values("name"); var falseQuery = baseQuery.CreateSubQuery().Constant("unknown"); var result = client.Execute(baseQuery.Choose(conditionQuery, trueQuery, falseQuery)).Result; Assert.AreEqual(result.First(), "unknown"); } }
public void Steps_Optional() { using (var client = TestDatabase.GetClient("optional")) { client.Execute(VertexQuery.Create("one")).Wait(); var subQuery = VertexQuery.All().CreateSubQuery().Out(); Assert.AreEqual(client.Execute(VertexQuery.All().Optional(subQuery)).Result.First().label, "one"); client.Execute(VertexQuery.Create("two")).Wait(); client.Execute(VertexQuery.All().HasLabel("one").AddEdge("to", DirectionStep.To(VertexQuery.Find("two")))).Wait(); Assert.AreEqual(client.Execute(VertexQuery.All().Optional(subQuery)).Result.First().label, "two"); } }
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_Union() { using (var client = TestDatabase.GetClient("union")) { client.Execute(VertexQuery.Create("foo").AddProperty("firstName", "John").AddProperty("lastName", "Doe")).Wait(); var query = VertexQuery.All().Union( VertexQuery.All().CreateSubQuery().Values("firstName"), VertexQuery.All().CreateSubQuery().Values("lastName") ); var result = client.Execute(query).Result; Assert.AreEqual(result.Count(), 2); Assert.IsTrue(result.Contains("John")); Assert.IsTrue(result.Contains("Doe")); } }
public void Steps_And() { using (var client = TestDatabase.GetClient("and")) { client.Execute(VertexQuery.Create("test").AddProperty("age", 30).AddProperty("name", "steve")).Wait(); client.Execute(VertexQuery.Create("test")).Wait(); var baseQuery = VertexQuery.All(); var query = VertexQuery.All().And(baseQuery.CreateSubQuery().Values("age").Is(30), baseQuery.CreateSubQuery().Values("name").Is("steve")); var result = client.Execute(query).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(client.Execute(VertexQuery.All()).Result.Count(), 2); } }
public void Steps_Order() { using (var client = TestDatabase.GetClient("order")) { client.Execute(VertexQuery.Create("foo").AddProperty("age", 30)).Wait(); client.Execute(VertexQuery.Create("bar").AddProperty("age", 20)).Wait(); var result = client.Execute(VertexQuery.All().Label().Order(true)).Result; Assert.AreEqual(result.First(), "bar"); Assert.AreEqual(result.ElementAt(1), "foo"); var vertexResult = client.Execute(VertexQuery.All().OrderBy("age", true)).Result; Assert.AreEqual(vertexResult.First().label, "bar"); Assert.AreEqual(vertexResult.ElementAt(1).label, "foo"); } }
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"); } }
public void Steps_Select() { using (var client = TestDatabase.GetClient("select")) { client.Execute(VertexQuery.Create("one")).Wait(); client.Execute(VertexQuery.Create("two")).Wait(); client.Execute(VertexQuery.All().HasLabel("one").AddEdge("to", DirectionStep.To(VertexQuery.Find("two")))).Wait(); var query = VertexQuery.All().As("a").Out().As("b").Select("a", "b"); var result = client.Execute(query).Result; Assert.IsTrue(result.First().ContainsKey("a")); Assert.IsTrue(result.First().ContainsKey("b")); } }
public void Steps_Min() { using (var client = TestDatabase.GetClient("min")) { var countQuery = VertexQuery.All().Count(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 0); client.Execute(VertexQuery.Create("test").AddProperty("age", 50)).Wait(); client.Execute(VertexQuery.Create("test").AddProperty("age", 40)).Wait(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 2); var result = client.Execute(VertexQuery.All().Values <long>("age").Min()).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.First(), 40); client.Execute(VertexQuery.All().Drop()).Wait(); } }
public void Steps_Label() { using (var client = TestDatabase.GetClient("label")) { var countQuery = VertexQuery.All().Count(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 0); var insertQuery = VertexQuery.Create("test"); client.Execute(insertQuery).Wait(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 1); var result = client.Execute(VertexQuery.All().Label()).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.First(), "test"); client.Execute(VertexQuery.All().Drop()).Wait(); } }
public void Steps_Dedup() { using (var client = TestDatabase.GetClient("dedup")) { var countQuery = VertexQuery.All().Count(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 0); var insertQuery = VertexQuery.Create("test").AddProperty("key", "value"); client.Execute(insertQuery).Wait(); client.Execute(insertQuery).Wait(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 2); var values = client.Execute(VertexQuery.All().Values <string>("key").Dedup()).Result; Assert.AreEqual(values.Count(), 1); client.Execute(VertexQuery.All().Drop()).Wait(); } }
public void Steps_Properties() { using (var client = TestDatabase.GetClient("properties")) { client.Execute(VertexQuery.Create("foo").AddProperty("age", 30)).Wait(); var result = client.Execute(VertexQuery.All().Properties()).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.First().label, "age"); Assert.AreEqual(result.First().value, 30L); result = client.Execute(VertexQuery.All().Properties("age")).Result; Assert.AreEqual(result.Count(), 1); Assert.AreEqual(result.First().label, "age"); Assert.AreEqual(result.First().value, 30L); result = client.Execute(VertexQuery.All().Properties("name")).Result; Assert.AreEqual(result.Count(), 0); } }
public void Steps_Repeat() { using (var client = TestDatabase.GetClient("repeat")) { var countQuery = VertexQuery.All().Count(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 0); var insertQuery = VertexQuery.Create("test"); client.Execute(insertQuery).Wait(); client.Execute(insertQuery).Wait(); var baseQuery = VertexQuery.All().Fold(); var actionQuery = baseQuery.CreateSubQuery().AddVertex("test"); var query = baseQuery.Repeat(actionQuery, 2); client.Execute(query).Wait(); Assert.AreEqual(client.Execute(countQuery).Result.First(), 4); } }
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); } }
public void Steps_ValueMap() { using (var client = TestDatabase.GetClient("valueMap")) { client.Execute(VertexQuery.Create("foo").AddProperty("age", 30)).Wait(); var vertexQuery = VertexQuery.All().ValueMap(); var vertexResult = client.Execute(vertexQuery).Result; Assert.AreEqual(vertexResult.Count(), 1); Assert.IsTrue(vertexResult.First().ContainsKey("age")); Assert.AreEqual(vertexResult.First()["age"].First(), 30L); client.Execute(VertexQuery.Create("bar")).Wait(); client.Execute(VertexQuery.All().HasLabel("foo").AddEdge("to", DirectionStep.To(VertexQuery.Find("bar"))).AddProperty("key", "value")).Wait(); var edgeQuery = VertexQuery.All().OutE().ValueMap(); var edgeResult = client.Execute(edgeQuery).Result; Assert.AreEqual(edgeResult.Count(), 1); Assert.IsTrue(edgeResult.First().ContainsKey("key")); Assert.AreEqual(edgeResult.First()["key"], "value"); } }