Search in sources :

Example 21 with Notification

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

the class ExecutionResultSerializerTest method shouldNotReturnPositionWhenEmptyPosition.

@Test
void shouldNotReturnPositionWhenEmptyPosition() {
    // given
    var row = Map.of("column1", "value1", "column2", "value2");
    Notification notification = NotificationCode.CARTESIAN_PRODUCT.notification(InputPosition.empty);
    List<Notification> notifications = Collections.singletonList(notification);
    // when
    writeStatementStart(serializer, "column1", "column2");
    writeRecord(serializer, row, "column1", "column2");
    writeStatementEnd(serializer, null, notifications);
    writeTransactionInfo(serializer, "commit/uri/1");
    // then
    String result = output.toString(UTF_8);
    assertEquals("{\"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\"}],\"errors\":[],\"commit\":\"commit/uri/1\"}", result);
}
Also used : Notification(org.neo4j.graphdb.Notification) Test(org.junit.jupiter.api.Test)

Aggregations

Notification (org.neo4j.graphdb.Notification)21 Test (org.junit.jupiter.api.Test)10 InputPosition (org.neo4j.graphdb.InputPosition)5 Result (org.neo4j.graphdb.Result)4 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 IOException (java.io.IOException)3 Test (org.junit.Test)3 Neo4jJsonCodecTest (org.neo4j.server.rest.transactional.Neo4jJsonCodecTest)3 ExecutionPlanDescription (org.neo4j.graphdb.ExecutionPlanDescription)2 QueryExecutionType (org.neo4j.graphdb.QueryExecutionType)2 Transaction (org.neo4j.graphdb.Transaction)2 ConnectionException (org.neo4j.server.http.cypher.format.api.ConnectionException)2 ArrayList (java.util.ArrayList)1 TreeSet (java.util.TreeSet)1 Matchers.containsString (org.hamcrest.Matchers.containsString)1 Config (org.neo4j.configuration.Config)1 ResultStringBuilder (org.neo4j.cypher.internal.result.string.ResultStringBuilder)1 CypherExecutionException (org.neo4j.exceptions.CypherExecutionException)1 Neo4jException (org.neo4j.exceptions.Neo4jException)1 QueryExecutionException (org.neo4j.graphdb.QueryExecutionException)1