public void BuildPayload_Should_Use_Defaults()
 {
     var options = new GraphOptions();
     var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()"));
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("g"), payload1["graph-source"]);
     var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()"));
     Assert.AreSame(payload1, payload2);
 }
Exemplo n.º 2
0
        public void BuildPayload_Should_Use_Defaults()
        {
            var options  = new GraphOptions().SetGraphProtocolVersion(GraphProtocol.GraphSON1);
            var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("g"), payload1["graph-source"]);
            var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            Assert.AreSame(payload1, payload2);
        }
 public void BuildPayload_Should_Not_Use_Default_Name_When_IsSystemQuery()
 {
     var options = new GraphOptions()
         .SetName("graph1");
     var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()").SetSystemQuery());
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("g"), payload1["graph-source"]);
     Assert.False(payload1.ContainsKey("graph-name"));
     var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()").SetSystemQuery());
     var payload3 = options.BuildPayload(new SimpleGraphStatement("g.V()"));
     Assert.AreNotSame(payload1, payload2);
     Assert.AreNotSame(payload2, payload3);
 }
 public void BuildPayload_Should_Use_Statement_Options_When_Defined()
 {
     var options = new GraphOptions()
         .SetSource("source1");
     var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()")
         .SetGraphName("graph2"));
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("source1"), payload1["graph-source"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("graph2"), payload1["graph-name"]);
     var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()")
         .SetGraphName("graph2"));
     Assert.AreNotSame(payload1, payload2);
 }
 public void BuildPayload_Should_Override_Default_When_Defined()
 {
     var options = new GraphOptions()
         .SetLanguage("lang1")
         .SetName("graph1")
         .SetSource("source1");
     var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()"));
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("lang1"), payload1["graph-language"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("source1"), payload1["graph-source"]);
     CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("graph1"), payload1["graph-name"]);
     var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()"));
     Assert.AreSame(payload1, payload2);
 }
Exemplo n.º 6
0
        public void BuildPayload_Should_Use_Same_Byte_Array_As_Default()
        {
            var options = new GraphOptions()
                          .SetName("graph1");
            var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("g"), payload1["graph-source"]);
            var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()").SetGraphName("abc"));

            Assert.AreNotSame(payload1, payload2);
            Assert.AreSame(payload1["graph-language"], payload2["graph-language"]);
            Assert.AreSame(payload1["graph-source"], payload2["graph-source"]);
        }
Exemplo n.º 7
0
        public void BuildPayload_Should_Not_Use_Default_Name_When_IsSystemQuery()
        {
            var options = new GraphOptions()
                          .SetName("graph1");
            var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()").SetSystemQuery());

            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("g"), payload1["graph-source"]);
            Assert.False(payload1.ContainsKey("graph-name"));
            var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()").SetSystemQuery());
            var payload3 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            Assert.AreNotSame(payload1, payload2);
            Assert.AreNotSame(payload2, payload3);
        }
Exemplo n.º 8
0
        public void BuildPayload_Should_Use_Statement_Options_When_Defined()
        {
            var options = new GraphOptions()
                          .SetSource("source1");
            var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()")
                                                .SetGraphName("graph2"));

            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("gremlin-groovy"), payload1["graph-language"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("source1"), payload1["graph-source"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("graph2"), payload1["graph-name"]);
            var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()")
                                                .SetGraphName("graph2"));

            Assert.AreNotSame(payload1, payload2);
        }
Exemplo n.º 9
0
        public void BuildPayload_Should_Override_Default_When_Defined()
        {
            var options = new GraphOptions()
                          .SetLanguage("lang1")
                          .SetName("graph1")
                          .SetSource("source1");
            var payload1 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("lang1"), payload1["graph-language"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("source1"), payload1["graph-source"]);
            CollectionAssert.AreEqual(Encoding.UTF8.GetBytes("graph1"), payload1["graph-name"]);
            var payload2 = options.BuildPayload(new SimpleGraphStatement("g.V()"));

            Assert.AreSame(payload1, payload2);
        }
Exemplo n.º 10
0
        private ConvertedStatementResult ConvertGraphStatement(
            IGraphStatement graphStmt, GraphOptions options, GraphProtocol graphProtocol)
        {
            string jsonParams;
            string query;
            IGraphTypeSerializer serializer;

            if (graphStmt is SimpleGraphStatement simpleGraphStatement)
            {
                serializer = _graphTypeSerializerFactory.CreateSerializer(_session, null, null, graphProtocol, true);
                query      = simpleGraphStatement.Query;
                if (simpleGraphStatement.ValuesDictionary != null)
                {
                    jsonParams = serializer.ToDb(simpleGraphStatement.ValuesDictionary);
                }
                else if (simpleGraphStatement.Values != null)
                {
                    jsonParams = serializer.ToDb(Utils.GetValues(simpleGraphStatement.Values));
                }
                else
                {
                    jsonParams = null;
                }
            }
            else if (graphStmt is FluentGraphStatement fluentGraphStatement)
            {
                serializer = _graphTypeSerializerFactory.CreateSerializer(
                    _session,
                    fluentGraphStatement.CustomDeserializers,
                    fluentGraphStatement.CustomSerializers,
                    graphProtocol,
                    fluentGraphStatement.DeserializeGraphNodes);
                query      = serializer.ToDb(fluentGraphStatement.QueryBytecode);
                jsonParams = null;
            }
            else
            {
                throw new NotSupportedException("Statement of type " + graphStmt.GetType().FullName + " not supported");
            }

            IStatement stmt = jsonParams != null
                ? new TargettedSimpleStatement(query, jsonParams)
                : new TargettedSimpleStatement(query);

            //Set Cassandra.Statement properties
            if (graphStmt.Timestamp != null)
            {
                stmt.SetTimestamp(graphStmt.Timestamp.Value);
            }
            var readTimeout = graphStmt.ReadTimeoutMillis != 0 ? graphStmt.ReadTimeoutMillis : options.ReadTimeoutMillis;

            if (readTimeout <= 0)
            {
                // Infinite (-1) is not supported in the core driver, set an arbitrarily large int
                readTimeout = int.MaxValue;
            }

            stmt = stmt
                   .SetIdempotence(false)
                   .SetConsistencyLevel(graphStmt.ConsistencyLevel)
                   .SetReadTimeoutMillis(readTimeout)
                   .SetOutgoingPayload(options.BuildPayload(graphStmt));

            return(new ConvertedStatementResult
            {
                Serializer = serializer,
                Statement = stmt
            });
        }
 internal override IStatement GetIStatement(GraphOptions options)
 {
     string jsonParams = null;
     if (_valuesDictionary != null)
     {
         jsonParams = JsonConvert.SerializeObject(_valuesDictionary);
     }
     else if (_values != null)
     {
         jsonParams = JsonConvert.SerializeObject(_values);
     }
     IStatement stmt;
     if (jsonParams != null)
     {
         stmt = new TargettedSimpleStatement(_query, jsonParams);
     }
     else
     {
         stmt = new TargettedSimpleStatement(_query);
     }
     //Set Cassandra.Statement properties
     if (Timestamp != null)
     {
         stmt.SetTimestamp(Timestamp.Value);
     }
     var readTimeout = ReadTimeoutMillis != 0 ? ReadTimeoutMillis : options.ReadTimeoutMillis;
     if (readTimeout <= 0)
     {
         // Infinite (-1) is not supported in the core driver, set an arbitrarily large int
         readTimeout = int.MaxValue;
     }
     return stmt
         .SetIdempotence(false)
         .SetConsistencyLevel(ConsistencyLevel)
         .SetReadTimeoutMillis(readTimeout)
         .SetOutgoingPayload(options.BuildPayload(this));
 }