Exemple #1
0
        public async Task With_GraphSON2_It_Should_Retrieve_Edge_Instances()
        {
            var statement = new SimpleGraphStatement("{\"@type\": \"g:Bytecode\", \"@value\": {" +
                                                     "  \"step\": [[\"E\"], [\"hasLabel\", \"created\"]]}}");

            statement.SetGraphLanguage(GraphTests.GraphSON2Language);
            var rs = await _session.ExecuteGraphAsync(statement).ConfigureAwait(false);

            var results = rs.To <IEdge>().ToArray();

            Assert.Greater(results.Length, 0);
            foreach (var edge in results)
            {
                Assert.AreEqual("created", edge.Label);
            }
        }
Exemple #2
0
        public async Task With_GraphSON2_It_Should_Retrieve_Vertex_Name_Marko()
        {
            var statement = new SimpleGraphStatement("{\"@type\": \"g:Bytecode\", \"@value\": {" +
                                                     "  \"step\": [[\"V\"], [\"has\", \"person\", \"name\", \"marko\"]]}}");

            statement.SetGraphLanguage(GraphSON2Language);
            var rs = await _session.ExecuteGraphAsync(statement).ConfigureAwait(false);

            var results = rs.ToArray();

            Assert.AreEqual(1, results.Length);
            var markoVertex = results.FirstOrDefault().ToVertex();

            Assert.AreEqual("person", markoVertex.Label);
            Assert.AreEqual("marko", markoVertex.Properties["name"].ToArray()[0].Get <string>("value"));
        }
Exemple #3
0
        public void GraphStatement_Set_Methods_Test()
        {
            var statement = new SimpleGraphStatement("g.V()");

            statement
            .SetGraphSource("source1")
            .SetGraphLanguage("lang1")
            .SetGraphName("name1")
            .SetGraphReadConsistencyLevel(ConsistencyLevel.Two)
            .SetGraphWriteConsistencyLevel(ConsistencyLevel.Three);
            Assert.AreEqual("source1", statement.GraphSource);
            Assert.AreEqual("lang1", statement.GraphLanguage);
            Assert.AreEqual("name1", statement.GraphName);
            Assert.AreEqual(ConsistencyLevel.Two, statement.GraphReadConsistencyLevel);
            Assert.AreEqual(ConsistencyLevel.Three, statement.GraphWriteConsistencyLevel);
        }
Exemple #4
0
        public async Task With_GraphSON2_It_Should_Retrieve_Vertex_Instances()
        {
            var statement = new SimpleGraphStatement("{\"@type\": \"g:Bytecode\", \"@value\": {" +
                                                     "  \"step\": [[\"V\"], [\"hasLabel\", \"person\"]]}}");

            statement.SetGraphLanguage(GraphSON2Language);
            var rs = await _session.ExecuteGraphAsync(statement).ConfigureAwait(false);

            var results = rs.ToArray();

            Assert.Greater(results.Length, 0);
            foreach (var graphNode in results)
            {
                var vertex = graphNode.ToVertex();
                Assert.AreEqual("person", vertex.Label);
            }
        }
        public async Task With_GraphSON2_It_Should_Insert_And_Retrieve_LocalDate_LocalTime()
        {
            const string schemaQuery = "schema.propertyKey('localdate').Date().ifNotExists().create();\n" +
                                       "schema.propertyKey('localtime').Time().ifNotExists().create();\n" +
                                       "schema.vertexLabel('typetests').properties('name', 'localdate', 'localtime').ifNotExists().create();\n";

            _session.ExecuteGraph(new SimpleGraphStatement(schemaQuery));

            var deleteStatement = new SimpleGraphStatement("{\"@type\": \"g:Bytecode\", \"@value\": {" +
                                                           "  \"step\": [[\"V\"], " +
                                                           "    [\"has\", \"typetests\", \"name\", \"stephen\"]," +
                                                           "    [\"drop\"]]}}");

            deleteStatement.SetGraphLanguage(GraphTests.GraphSON2Language);
            _session.ExecuteGraph(deleteStatement);

            var addStatement = new SimpleGraphStatement("{\"@type\":\"g:Bytecode\", \"@value\": {\"step\":[" +
                                                        "[\"addV\", \"typetests\"],[\"property\",\"name\",\"stephen\"]," +
                                                        "[\"property\",\"localdate\", {\"@type\":\"gx:LocalDate\",\"@value\":\"1981-09-14\"}]," +
                                                        "[\"property\",\"localtime\", {\"@type\":\"gx:LocalTime\",\"@value\":\"12:50\"}]]}}");

            addStatement.SetGraphLanguage(GraphTests.GraphSON2Language);
            await _session.ExecuteGraphAsync(addStatement).ConfigureAwait(false);

            var statement = new SimpleGraphStatement("{\"@type\": \"g:Bytecode\", \"@value\": {" +
                                                     "  \"step\": [[\"V\"], [\"has\", \"typetests\", \"name\", \"stephen\"]]}}");

            statement.SetGraphLanguage(GraphTests.GraphSON2Language);
            var rs = await _session.ExecuteGraphAsync(statement).ConfigureAwait(false);

            var results = rs.ToArray();

            Assert.AreEqual(1, results.Length);
            var stephen = results.First().To <IVertex>();

            Assert.AreEqual("stephen", stephen.GetProperty("name").Value.ToString());
            Assert.AreEqual(LocalDate.Parse("1981-09-14"), stephen.GetProperty("localdate").Value.To <LocalDate>());
            Assert.AreEqual(LocalTime.Parse("12:50"), stephen.GetProperty("localtime").Value.To <LocalTime>());
        }
        public void ExecuteGraph_Should_Throw_ArgumentOutOfRange_When_Duration_Is_Out_Of_Range()
        {
            var values = new[]
            {
                new Duration(1, 0, 0),
                new Duration(-1, 0, 0)
            };

            using (var cluster = ClusterBuilder()
                                 .AddContactPoint(TestClusterManager.InitialContactPoint)
                                 .WithGraphOptions(new GraphOptions().SetName(GraphTests.GraphName))
                                 .Build())
            {
                var session = cluster.Connect();
                foreach (var value in values)
                {
                    var parameters = new { vertexLabel = "v1", propertyName = "prop1", val = value };
                    var stmt       = new SimpleGraphStatement("g.addV(vertexLabel).property(propertyName, val)", parameters);
                    Assert.Throws <ArgumentOutOfRangeException>(() => session.ExecuteGraph(stmt));
                }
            }
        }