Search in sources :

Example 6 with BeginMessage

use of org.neo4j.bolt.v4.messaging.BeginMessage in project neo4j by neo4j.

the class BoltRequestMessageReaderV41Test method shouldDecodeBoltV3RunAndBeginMessageAsBoltV41Message.

@Test
void shouldDecodeBoltV3RunAndBeginMessageAsBoltV41Message() throws Exception {
    org.neo4j.bolt.v3.messaging.request.RunMessage runMessageV3 = new org.neo4j.bolt.v3.messaging.request.RunMessage("RETURN 1", EMPTY_MAP);
    org.neo4j.bolt.v3.messaging.request.BeginMessage beginMessageV3 = new org.neo4j.bolt.v3.messaging.request.BeginMessage();
    RunMessage runMessageV4 = new RunMessage("RETURN 1", EMPTY_MAP);
    BeginMessage beginMessageV4 = new BeginMessage();
    verifyBoltV3MessageIsReadAsBoltV4Message(runMessageV3, runMessageV4);
    verifyBoltV3MessageIsReadAsBoltV4Message(beginMessageV3, beginMessageV4);
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) RunMessage(org.neo4j.bolt.v4.messaging.RunMessage) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 7 with BeginMessage

use of org.neo4j.bolt.v4.messaging.BeginMessage in project neo4j by neo4j.

the class BoltRequestMessageReaderV43Test method shouldDecodeBoltV3RunAndBeginMessageAsBoltv43Message.

@Test
void shouldDecodeBoltV3RunAndBeginMessageAsBoltv43Message() throws Exception {
    org.neo4j.bolt.v3.messaging.request.RunMessage runMessageV3 = new org.neo4j.bolt.v3.messaging.request.RunMessage("RETURN 1", EMPTY_MAP);
    org.neo4j.bolt.v3.messaging.request.BeginMessage beginMessageV3 = new org.neo4j.bolt.v3.messaging.request.BeginMessage();
    RunMessage runMessageV4 = new RunMessage("RETURN 1", EMPTY_MAP);
    BeginMessage beginMessageV4 = new BeginMessage();
    verifyBoltV3MessageIsReadAsBoltV4Message(runMessageV3, runMessageV4);
    verifyBoltV3MessageIsReadAsBoltV4Message(beginMessageV3, beginMessageV4);
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) RunMessage(org.neo4j.bolt.v4.messaging.RunMessage) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 8 with BeginMessage

use of org.neo4j.bolt.v4.messaging.BeginMessage in project neo4j by neo4j.

the class BoltV43TransportIT method shouldReturnUpdatedBookmarkAfterExplicitTransaction.

@ParameterizedTest(name = "{0}")
@MethodSource("argumentsProvider")
public void shouldReturnUpdatedBookmarkAfterExplicitTransaction(Class<? extends TransportConnection> connectionClass) throws Exception {
    init(connectionClass);
    assumeFalse(FabricDatabaseManager.fabricByDefault(Config.defaults()));
    negotiateBoltV43();
    // bookmark is expected to advance once the auto-commit transaction is committed
    var lastClosedTransactionId = getLastClosedTransactionId();
    var expectedBookmark = new BookmarkWithDatabaseId(lastClosedTransactionId + 1, getDatabaseId()).toString();
    connection.send(util.chunk(new BeginMessage()));
    assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess()));
    connection.send(util.chunk(new RunMessage("CREATE ()"), new PullMessage(asMapValue(map("n", -1L)))));
    assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess(), msgSuccess(message -> assertThat(message).doesNotContainEntry("bookmark", expectedBookmark))));
    connection.send(util.chunk(CommitMessage.COMMIT_MESSAGE));
    assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess(message -> assertThat(message).containsEntry("bookmark", expectedBookmark))));
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) BookmarkWithDatabaseId(org.neo4j.bolt.v4.runtime.bookmarking.BookmarkWithDatabaseId) PullMessage(org.neo4j.bolt.v4.messaging.PullMessage) RunMessage(org.neo4j.bolt.v4.messaging.RunMessage) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 9 with BeginMessage

use of org.neo4j.bolt.v4.messaging.BeginMessage in project neo4j by neo4j.

the class InTransactionStateIT method getBoltStateMachineInTxState.

private BoltStateMachineV4 getBoltStateMachineInTxState(String query) throws BoltConnectionFatality {
    BoltStateMachineV4 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    machine.process(new BeginMessage(), nullResponseHandler());
    assertThat(machine.state()).isInstanceOf(InTransactionState.class);
    machine.process(new RunMessage(query, EMPTY_PARAMS), nullResponseHandler());
    // tx streaming state
    assertThat(machine.state()).isInstanceOf(InTransactionState.class);
    return machine;
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) RunMessage(org.neo4j.bolt.v4.messaging.RunMessage)

Example 10 with BeginMessage

use of org.neo4j.bolt.v4.messaging.BeginMessage in project neo4j by neo4j.

the class InTransactionStateIT method shouldThrowExceptionOnIllegalMessagesInTxStreamingState.

private void shouldThrowExceptionOnIllegalMessagesInTxStreamingState(RequestMessage message) throws Throwable {
    // Given
    BoltStateMachineV4 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    machine.process(new BeginMessage(), nullResponseHandler());
    machine.process(new RunMessage("CREATE (n {k:'k'}) RETURN n.k", EMPTY_PARAMS), nullResponseHandler());
    assertThat(machine.state()).isInstanceOf(InTransactionState.class);
    // when
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    verifyKillsConnection(() -> machine.process(message, recorder));
    // then
    assertThat(recorder.nextResponse()).satisfies(failedWithStatus(Status.Request.Invalid));
    assertNull(machine.state());
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) RunMessage(org.neo4j.bolt.v4.messaging.RunMessage)

Aggregations

BeginMessage (org.neo4j.bolt.v4.messaging.BeginMessage)10 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)8 RunMessage (org.neo4j.bolt.v4.messaging.RunMessage)8 Test (org.junit.jupiter.api.Test)4 MethodSource (org.junit.jupiter.params.provider.MethodSource)4 BoltStateMachineV4 (org.neo4j.bolt.v4.BoltStateMachineV4)4 PullMessage (org.neo4j.bolt.v4.messaging.PullMessage)4 BookmarkWithDatabaseId (org.neo4j.bolt.v4.runtime.bookmarking.BookmarkWithDatabaseId)4 BoltResponseRecorder (org.neo4j.bolt.testing.BoltResponseRecorder)3 RecordedBoltResponse (org.neo4j.bolt.testing.RecordedBoltResponse)1