Search in sources :

Example 6 with InputPosition

use of org.neo4j.graphdb.InputPosition in project neo4j by neo4j.

the class NotificationAcceptanceTest method shouldNotifyWhenUsingCypher3_1ForTheRulePlannerWhenCypherVersionIs3_2.

@Test
public void shouldNotifyWhenUsingCypher3_1ForTheRulePlannerWhenCypherVersionIs3_2() throws Exception {
    // when
    Result result = db().execute("CYPHER 3.2 planner=rule RETURN 1");
    InputPosition position = new InputPosition(24, 1, 25);
    // then
    assertThat(result.getNotifications(), contains(RULE_PLANNER_UNAVAILABLE_FALLBACK.notification(position)));
    Map<String, Object> arguments = result.getExecutionPlanDescription().getArguments();
    assertThat(arguments.get("version"), equalTo("CYPHER 3.1"));
    assertThat(arguments.get("planner"), equalTo("RULE"));
    result.close();
}
Also used : InputPosition(org.neo4j.graphdb.InputPosition) Result(org.neo4j.graphdb.Result) Test(org.junit.Test)

Example 7 with InputPosition

use of org.neo4j.graphdb.InputPosition in project neo4j by neo4j.

the class ExecutionResultSerializerTest method shouldReturnNotifications.

@Test
public void shouldReturnNotifications() throws IOException {
    // given
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    ExecutionResultSerializer serializer = getSerializerWith(output);
    Notification notification = NotificationCode.CARTESIAN_PRODUCT.notification(new InputPosition(1, 2, 3));
    List<Notification> notifications = Arrays.asList(notification);
    Result executionResult = mockExecutionResult(null, notifications, map("column1", "value1", "column2", "value2"));
    // when
    serializer.transactionCommitUri(URI.create("commit/uri/1"));
    serializer.statementResult(executionResult, false);
    serializer.notifications(notifications);
    serializer.finish();
    // then
    String result = output.toString(UTF_8.name());
    assertEquals("{\"commit\":\"commit/uri/1\",\"results\":[{\"columns\":[\"column1\",\"column2\"]," + "\"data\":[{\"row\":[\"value1\",\"value2\"],\"meta\":[null,null]}]}],\"notifications\":[{\"code\":\"Neo" + ".ClientNotification.Statement.CartesianProductWarning\",\"severity\":\"WARNING\",\"title\":\"This " + "query builds a cartesian product between disconnected patterns.\",\"description\":\"If a " + "part of a query contains multiple disconnected patterns, this will build a cartesian product" + " between all those parts. This may produce a large amount of data and slow down query " + "processing. While occasionally intended, it may often be possible to reformulate the query " + "that avoids the use of this cross product, perhaps by adding a relationship between the " + "different parts or by using OPTIONAL MATCH\",\"position\":{\"offset\":1,\"line\":2," + "\"column\":3}}],\"errors\":[]}", result);
}
Also used : InputPosition(org.neo4j.graphdb.InputPosition) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Notification(org.neo4j.graphdb.Notification) Result(org.neo4j.graphdb.Result) Test(org.junit.Test) Neo4jJsonCodecTest(org.neo4j.server.rest.transactional.Neo4jJsonCodecTest)

Aggregations

InputPosition (org.neo4j.graphdb.InputPosition)7 Test (org.junit.Test)6 Result (org.neo4j.graphdb.Result)6 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 Map (java.util.Map)1 BoltResult (org.neo4j.bolt.v1.runtime.spi.BoltResult)1 Notification (org.neo4j.graphdb.Notification)1 QueryStatistics (org.neo4j.graphdb.QueryStatistics)1 TransactionalContext (org.neo4j.kernel.impl.query.TransactionalContext)1 Neo4jJsonCodecTest (org.neo4j.server.rest.transactional.Neo4jJsonCodecTest)1