コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
 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);
     }
 }
コード例 #3
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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);
            }
        }
コード例 #4
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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");
            }
        }
コード例 #5
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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");
            }
        }
コード例 #6
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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);
            }
        }
コード例 #7
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
 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"));
     }
 }
コード例 #8
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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);
            }
        }
コード例 #9
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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");
            }
        }
コード例 #10
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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");
            }
        }
コード例 #11
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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"));
            }
        }
コード例 #12
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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();
            }
        }
コード例 #13
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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();
            }
        }
コード例 #14
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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();
            }
        }
コード例 #15
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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);
            }
        }
コード例 #16
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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);
            }
        }
コード例 #17
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
 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);
     }
 }
コード例 #18
0
ファイル: Steps.cs プロジェクト: gregjesl/CuriousGremlin
        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");
            }
        }