Search in sources :

Example 21 with BoltResponseRecorder

use of org.neo4j.bolt.testing.BoltResponseRecorder in project neo4j by neo4j.

the class BoltConnectionIT method shouldFailOn__pullAll__discardAll.

@Test
public void shouldFailOn__pullAll__discardAll() throws Throwable {
    // Given
    BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
    machine.init(USER_AGENT, emptyMap(), null);
    // And Given that I've ran and pulled one stream
    machine.run("RETURN 1", EMPTY_PARAMS, nullResponseHandler());
    machine.pullAll(nullResponseHandler());
    // When I attempt to pull more items from the stream
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    verifyKillsConnection(() -> machine.discardAll(recorder));
    // Then
    assertThat(recorder.nextResponse(), failedWithStatus(Status.Request.Invalid));
}
Also used : BoltStateMachine(org.neo4j.bolt.v1.runtime.BoltStateMachine) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.Test)

Example 22 with BoltResponseRecorder

use of org.neo4j.bolt.testing.BoltResponseRecorder in project neo4j by neo4j.

the class BoltConnectionIT method shouldSucceedOn__run_BEGIN__pullAll__run_COMMIT__pullALL__run_COMMIT.

@Test
public void shouldSucceedOn__run_BEGIN__pullAll__run_COMMIT__pullALL__run_COMMIT() throws Throwable {
    // Given
    BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
    machine.init(USER_AGENT, emptyMap(), null);
    // And Given that I've ran and pulled one stream
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.run("BEGIN", EMPTY_PARAMS, recorder);
    machine.pullAll(recorder);
    machine.run("COMMIT", EMPTY_PARAMS, recorder);
    machine.pullAll(recorder);
    assertThat(recorder.nextResponse(), succeeded());
    assertThat(recorder.nextResponse(), succeeded());
    assertThat(recorder.nextResponse(), succeeded());
    assertThat(recorder.nextResponse(), succeeded());
    // When I run a new statement
    recorder.reset();
    machine.run("BEGIN", EMPTY_PARAMS, recorder);
    // Then
    assertThat(recorder.nextResponse(), succeeded());
}
Also used : BoltStateMachine(org.neo4j.bolt.v1.runtime.BoltStateMachine) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.Test)

Example 23 with BoltResponseRecorder

use of org.neo4j.bolt.testing.BoltResponseRecorder in project neo4j by neo4j.

the class BoltConnectionIT method shouldFailOn__run__run.

@Test
public void shouldFailOn__run__run() throws Throwable {
    // Given
    BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
    machine.init(USER_AGENT, emptyMap(), null);
    // And Given that I've ran one statement
    machine.run("RETURN 1", EMPTY_PARAMS, nullResponseHandler());
    // When I run a new statement, before consuming the stream
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    verifyKillsConnection(() -> machine.run("RETURN 1", EMPTY_PARAMS, recorder));
    // Then
    assertThat(recorder.nextResponse(), failedWithStatus(Status.Request.Invalid));
}
Also used : BoltStateMachine(org.neo4j.bolt.v1.runtime.BoltStateMachine) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.Test)

Example 24 with BoltResponseRecorder

use of org.neo4j.bolt.testing.BoltResponseRecorder in project neo4j by neo4j.

the class BoltConnectionIT method shouldNotSupportUsingPeriodicCommitInTransaction.

@Test
public void shouldNotSupportUsingPeriodicCommitInTransaction() throws Exception {
    // Given
    BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
    machine.init(USER_AGENT, emptyMap(), null);
    Map<String, Object> params = new HashMap<>();
    params.put("csvFileUrl", createLocalIrisData(machine));
    runAndPull(machine, "BEGIN");
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.run("USING PERIODIC COMMIT 40\n" + "LOAD CSV WITH HEADERS FROM {csvFileUrl} AS l\n" + "MATCH (c:Class {name: l.class_name})\n" + "CREATE (s:Sample {sepal_length: l.sepal_length, sepal_width: l.sepal_width, petal_length: l" + ".petal_length, petal_width: l.petal_width})\n" + "CREATE (c)<-[:HAS_CLASS]-(s)\n" + "RETURN count(*) AS c", params, recorder);
    // Then
    assertThat(recorder.nextResponse(), failedWithStatus(Status.Statement.SemanticError));
// "Executing queries that use periodic commit in an open transaction is not possible."
}
Also used : BoltStateMachine(org.neo4j.bolt.v1.runtime.BoltStateMachine) HashMap(java.util.HashMap) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.Test)

Example 25 with BoltResponseRecorder

use of org.neo4j.bolt.testing.BoltResponseRecorder in project neo4j by neo4j.

the class BoltConnectionIT method runAndPull.

private Object[] runAndPull(BoltStateMachine machine, String statement, Map<String, Object> params) throws Exception {
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.run(statement, params, nullResponseHandler());
    machine.pullAll(recorder);
    RecordedBoltResponse response = recorder.nextResponse();
    assertEquals(SUCCESS, response.message());
    return response.records();
}
Also used : BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) RecordedBoltResponse(org.neo4j.bolt.testing.RecordedBoltResponse)

Aggregations

BoltResponseRecorder (org.neo4j.bolt.testing.BoltResponseRecorder)36 Test (org.junit.Test)34 BoltStateMachine (org.neo4j.bolt.v1.runtime.BoltStateMachine)30 InetSocketAddress (java.net.InetSocketAddress)2 RecordedBoltResponse (org.neo4j.bolt.testing.RecordedBoltResponse)2 BoltConnectionDescriptor (org.neo4j.bolt.v1.runtime.BoltConnectionDescriptor)2 HashMap (java.util.HashMap)1 BoltConnectionFatality (org.neo4j.bolt.v1.runtime.BoltConnectionFatality)1 BoltResult (org.neo4j.bolt.v1.runtime.spi.BoltResult)1 BinaryLatch (org.neo4j.concurrent.BinaryLatch)1 Node (org.neo4j.graphdb.Node)1 Transaction (org.neo4j.graphdb.Transaction)1