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); }
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); }
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"]); }
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); }
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)); }