Search in sources :

Example 26 with BoltStateMachineV3

use of org.neo4j.bolt.v3.BoltStateMachineV3 in project neo4j by neo4j.

the class FailedStateIT method shouldMoveToInterruptedOnInterruptSignal.

@Test
void shouldMoveToInterruptedOnInterruptSignal() throws Throwable {
    // Given
    BoltStateMachineV3 machine = getBoltStateMachineInFailedState();
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(InterruptSignal.INSTANCE, recorder);
    // Then
    assertThat(recorder.nextResponse()).satisfies(succeeded());
    assertThat(machine.state()).isInstanceOf(InterruptedState.class);
}
Also used : BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 27 with BoltStateMachineV3

use of org.neo4j.bolt.v3.BoltStateMachineV3 in project neo4j by neo4j.

the class FailedStateIT method getBoltStateMachineInFailedState.

private BoltStateMachineV3 getBoltStateMachineInFailedState() throws BoltConnectionFatality, InterruptedException {
    BoltStateMachineV3 machine = newStateMachine();
    machine.process(newHelloMessage(), nullResponseHandler());
    RunMessage runMessage = mock(RunMessage.class);
    when(runMessage.statement()).thenThrow(new RuntimeException("error here"));
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(runMessage, recorder);
    assertThat(recorder.nextResponse()).satisfies(failedWithStatus(Status.General.UnknownError));
    assertThat(machine.state()).isInstanceOf(FailedState.class);
    return machine;
}
Also used : BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) RunMessage(org.neo4j.bolt.v3.messaging.request.RunMessage)

Example 28 with BoltStateMachineV3

use of org.neo4j.bolt.v3.BoltStateMachineV3 in project neo4j by neo4j.

the class InterruptedStateIT method shouldStayInInterruptedOnMoreReset.

@Test
void shouldStayInInterruptedOnMoreReset() throws Throwable {
    // Given
    BoltStateMachineV3 machine = getBoltStateMachineInInterruptedState();
    machine.interrupt();
    // need two reset to recover
    machine.interrupt();
    // When & Then
    machine.process(ResetMessage.INSTANCE, nullResponseHandler());
    assertThat(machine.state()).isInstanceOf(InterruptedState.class);
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(ResetMessage.INSTANCE, recorder);
    assertThat(recorder.nextResponse()).satisfies(succeeded());
    assertThat(machine.state()).isInstanceOf(ReadyState.class);
}
Also used : BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 29 with BoltStateMachineV3

use of org.neo4j.bolt.v3.BoltStateMachineV3 in project neo4j by neo4j.

the class InterruptedStateIT method shouldMoveReadyOnReset_succ.

@Test
void shouldMoveReadyOnReset_succ() throws Throwable {
    // Given
    BoltStateMachineV3 machine = getBoltStateMachineInInterruptedState();
    // When
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(ResetMessage.INSTANCE, recorder);
    // Then
    assertThat(recorder.nextResponse()).satisfies(succeeded());
    assertThat(machine.state()).isInstanceOf(ReadyState.class);
}
Also used : BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 30 with BoltStateMachineV3

use of org.neo4j.bolt.v3.BoltStateMachineV3 in project neo4j by neo4j.

the class InterruptedStateIT method shouldCloseConnectionOnIllegalMessages.

private void shouldCloseConnectionOnIllegalMessages(RequestMessage message) throws InterruptedException, BoltConnectionFatality {
    // Given
    BoltStateMachineV3 machine = getBoltStateMachineInInterruptedState();
    // when
    BoltResponseRecorder recorder = new BoltResponseRecorder();
    machine.process(message, recorder);
    // then
    assertThat(recorder.nextResponse()).satisfies(wasIgnored());
    assertThat(machine.state()).isInstanceOf(InterruptedState.class);
}
Also used : BoltStateMachineV3(org.neo4j.bolt.v3.BoltStateMachineV3) BoltResponseRecorder(org.neo4j.bolt.testing.BoltResponseRecorder)

Aggregations

BoltStateMachineV3 (org.neo4j.bolt.v3.BoltStateMachineV3)36 BoltResponseRecorder (org.neo4j.bolt.testing.BoltResponseRecorder)29 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)24 Test (org.junit.jupiter.api.Test)21 RecordedBoltResponse (org.neo4j.bolt.testing.RecordedBoltResponse)9 RunMessage (org.neo4j.bolt.v3.messaging.request.RunMessage)9 BeginMessage (org.neo4j.bolt.v3.messaging.request.BeginMessage)5 MethodSource (org.junit.jupiter.params.provider.MethodSource)3 BoltResponseHandler (org.neo4j.bolt.runtime.BoltResponseHandler)3