Search in sources :

Example 6 with BoltStateMachineV4

use of org.neo4j.bolt.v4.BoltStateMachineV4 in project neo4j by neo4j.

the class ReadyStateIT method shouldMoveToInTransactionOnBegin_succ.

@Test
void shouldMoveToInTransactionOnBegin_succ() throws Throwable {
    // Given
    BoltStateMachineV4 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(InTransactionState.class);
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) 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 7 with BoltStateMachineV4

use of org.neo4j.bolt.v4.BoltStateMachineV4 in project neo4j by neo4j.

the class ReadyStateIT method shouldMoveToFailedStateOnBegin_fail.

@Test
void shouldMoveToFailedStateOnBegin_fail() throws Throwable {
    // Given
    BoltStateMachineV4 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    BeginMessage beginMessage = mock(BeginMessage.class);
    when(beginMessage.databaseName()).thenReturn(ABSENT_DB_NAME);
    when(beginMessage.bookmarks()).thenThrow(new RuntimeException("Fail"));
    machine.process(beginMessage, recorder);
    // Then
    assertThat(recorder.nextResponse()).satisfies(failedWithStatus(Status.General.UnknownError));
    assertThat(machine.state()).isInstanceOf(FailedState.class);
}
Also used : BeginMessage(org.neo4j.bolt.v4.messaging.BeginMessage) BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 8 with BoltStateMachineV4

use of org.neo4j.bolt.v4.BoltStateMachineV4 in project neo4j by neo4j.

the class ReadyStateIT method shouldMoveToInterruptedOnInterrupt.

@Test
void shouldMoveToInterruptedOnInterrupt() throws Throwable {
    // Given
    BoltStateMachineV4 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(InterruptSignal.INSTANCE, recorder);
    // Then
    assertThat(machine.state()).isInstanceOf(InterruptedState.class);
}
Also used : BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 9 with BoltStateMachineV4

use of org.neo4j.bolt.v4.BoltStateMachineV4 in project neo4j by neo4j.

the class InTransactionStateIT method shouldMoveFromInTxToReadyOnCommit_succ.

@Test
void shouldMoveFromInTxToReadyOnCommit_succ() throws Throwable {
    // Given
    BoltStateMachineV4 machine = getBoltStateMachineInTxState();
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(COMMIT_MESSAGE, recorder);
    // Then
    RecordedBoltResponse response = recorder.nextResponse();
    assertThat(response).satisfies(succeeded());
    assertTrue(response.hasMetadata("bookmark"));
    assertThat(machine.state()).isInstanceOf(ReadyState.class);
}
Also used : BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) 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 10 with BoltStateMachineV4

use of org.neo4j.bolt.v4.BoltStateMachineV4 in project neo4j by neo4j.

the class InTransactionStateIT method shouldStayInTxOnDiscard_succ.

@Test
void shouldStayInTxOnDiscard_succ() throws Throwable {
    // Given
    BoltStateMachineV4 machine = getBoltStateMachineInTxState();
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(newDiscardMessage(100L), recorder);
    // Then
    RecordedBoltResponse response = recorder.nextResponse();
    assertThat(response).satisfies(succeeded());
    assertFalse(response.hasMetadata("bookmark"));
    assertTrue(response.hasMetadata("db"));
    assertThat(machine.state()).isInstanceOf(InTransactionState.class);
}
Also used : BoltStateMachineV4(org.neo4j.bolt.v4.BoltStateMachineV4) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) RecordedBoltResponse(org.neo4j.bolt.testing.RecordedBoltResponse) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

BoltStateMachineV4 (org.neo4j.bolt.v4.BoltStateMachineV4)31 BoltResponseRecorder (org.neo4j.bolt.testing.BoltResponseRecorder)25 Test (org.junit.jupiter.api.Test)21 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)21 RecordedBoltResponse (org.neo4j.bolt.testing.RecordedBoltResponse)12 RunMessage (org.neo4j.bolt.v4.messaging.RunMessage)9 BeginMessage (org.neo4j.bolt.v4.messaging.BeginMessage)4 BoltChannel (org.neo4j.bolt.BoltChannel)3 BoltStateMachine (org.neo4j.bolt.runtime.statemachine.BoltStateMachine)3 DefaultDatabaseResolver (org.neo4j.kernel.database.DefaultDatabaseResolver)3 MethodSource (org.junit.jupiter.params.provider.MethodSource)2 BoltResponseHandler (org.neo4j.bolt.runtime.BoltResponseHandler)1 Neo4jError (org.neo4j.bolt.runtime.Neo4jError)1 BoltStateMachineSPI (org.neo4j.bolt.runtime.statemachine.BoltStateMachineSPI)1 StatementProcessorReleaseManager (org.neo4j.bolt.runtime.statemachine.StatementProcessorReleaseManager)1 TransactionStateMachineSPIProvider (org.neo4j.bolt.runtime.statemachine.TransactionStateMachineSPIProvider)1 FailedState (org.neo4j.bolt.v4.runtime.FailedState)1