Search in sources :

Example 11 with BeginMessage

use of org.neo4j.bolt.v3.messaging.request.BeginMessage in project neo4j by neo4j.

the class ReadyStateIT method shouldMoveToTransactionReadyOnBegin_succ.

@Test
void shouldMoveToTransactionReadyOnBegin_succ() throws Throwable {
    // Given
    BoltStateMachineV3 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(new BeginMessage(), recorder);
    // Then
    RecordedBoltResponse response = recorder.nextResponse();
    assertThat(response).satisfies(succeeded());
    assertThat(machine.state()).isInstanceOf(TransactionReadyState.class);
}
Also used : BeginMessage(org.neo4j.bolt.v3.messaging.request.BeginMessage) BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) RecordedBoltResponse(org.neo4j.bolt.testing.RecordedBoltResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 12 with BeginMessage

use of org.neo4j.bolt.v3.messaging.request.BeginMessage in project neo4j by neo4j.

the class BoltV3TransportIT method shouldSetTxMetadata.

@ParameterizedTest(name = "{0}")
@MethodSource("argumentsProvider")
public void shouldSetTxMetadata(Class<? extends TransportConnection> connectionClass) throws Exception {
    init(connectionClass);
    // Given
    negotiateBoltV3();
    Map<String, Object> txMetadata = map("who-is-your-boss", "Molly-mostly-white");
    Map<String, Object> msgMetadata = map("tx_metadata", txMetadata);
    MapValue meta = asMapValue(msgMetadata);
    connection.send(util.chunk(new BeginMessage(meta, List.of(), null, AccessMode.WRITE, txMetadata), new RunMessage("RETURN 1"), PullAllMessage.INSTANCE));
    // When
    assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess(), msgSuccess(), msgRecord(eqRecord(longEquals(1L))), msgSuccess()));
    // Then
    GraphDatabaseAPI gdb = (GraphDatabaseAPI) server.graphDatabaseService();
    Set<KernelTransactionHandle> txHandles = gdb.getDependencyResolver().resolveDependency(KernelTransactions.class).activeTransactions();
    assertThat(txHandles.size()).isEqualTo(1);
    for (KernelTransactionHandle txHandle : txHandles) {
        assertThat(txHandle.getMetaData()).isEqualTo(txMetadata);
    }
    connection.send(util.chunk(ROLLBACK_MESSAGE));
}
Also used : BeginMessage(org.neo4j.bolt.v3.messaging.request.BeginMessage) GraphDatabaseAPI(org.neo4j.kernel.internal.GraphDatabaseAPI) KernelTransactions(org.neo4j.kernel.impl.api.KernelTransactions) ValueUtils.asMapValue(org.neo4j.kernel.impl.util.ValueUtils.asMapValue) MapValue(org.neo4j.values.virtual.MapValue) RunMessage(org.neo4j.bolt.v3.messaging.request.RunMessage) KernelTransactionHandle(org.neo4j.kernel.api.KernelTransactionHandle) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Aggregations

Test (org.junit.jupiter.api.Test)8 BeginMessage (org.neo4j.bolt.v3.messaging.request.BeginMessage)7 InOrder (org.mockito.InOrder)5 Neo4jPack (org.neo4j.bolt.packstream.Neo4jPack)5 PackOutput (org.neo4j.bolt.packstream.PackOutput)5 BoltStateMachineV3 (org.neo4j.bolt.v3.BoltStateMachineV3)5 RunMessage (org.neo4j.bolt.v3.messaging.request.RunMessage)4 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)3 BoltResponseRecorder (org.neo4j.bolt.testing.BoltResponseRecorder)3 RecordMessage (org.neo4j.bolt.v3.messaging.response.RecordMessage)3 IOException (java.io.IOException)2 MapValue (org.neo4j.values.virtual.MapValue)2 MethodSource (org.junit.jupiter.params.provider.MethodSource)1 RecordedBoltResponse (org.neo4j.bolt.testing.RecordedBoltResponse)1 HelloMessage (org.neo4j.bolt.v3.messaging.request.HelloMessage)1 FailureMessage (org.neo4j.bolt.v3.messaging.response.FailureMessage)1 SuccessMessage (org.neo4j.bolt.v3.messaging.response.SuccessMessage)1 KernelTransactionHandle (org.neo4j.kernel.api.KernelTransactionHandle)1 Status (org.neo4j.kernel.api.exceptions.Status)1 KernelTransactions (org.neo4j.kernel.impl.api.KernelTransactions)1