use of org.neo4j.bolt.runtime.Neo4jError in project neo4j by neo4j.
the class BoltStateMachineV4Test method testMarkFailedShouldYieldIgnoredIfAlreadyFailed.
private static void testMarkFailedShouldYieldIgnoredIfAlreadyFailed(ThrowingBiConsumer<BoltStateMachine, BoltResponseHandler, BoltConnectionFatality> action) throws Exception {
// Given
BoltStateMachine machine = init(newMachine());
machine.markFailed(Neo4jError.from(new RuntimeException()));
BoltResponseHandler responseHandler = mock(BoltResponseHandler.class);
Neo4jError error = Neo4jError.from(Status.Request.NoThreadsAvailable, "no threads");
machine.markFailed(error);
// When
action.accept(machine, responseHandler);
// Expect
assertNull(pendingError(machine));
assertFalse(pendingIgnore(machine));
assertThat(machine).satisfies(inState(FailedState.class));
verify(responseHandler).markIgnored();
}
use of org.neo4j.bolt.runtime.Neo4jError in project neo4j by neo4j.
the class BoltStateMachineV4Test method testMarkFailedOnNextMessage.
private static void testMarkFailedOnNextMessage(ThrowingBiConsumer<BoltStateMachine, BoltResponseHandler, BoltConnectionFatality> action) throws Exception {
// Given
BoltStateMachine machine = init(newMachine());
BoltResponseHandler responseHandler = mock(BoltResponseHandler.class);
Neo4jError error = Neo4jError.from(Status.Request.NoThreadsAvailable, "no threads");
machine.markFailed(error);
// When
action.accept(machine, responseHandler);
// Expect
assertNull(pendingError(machine));
assertFalse(pendingIgnore(machine));
assertThat(machine).satisfies(inState(FailedState.class));
verify(responseHandler).markFailed(error);
}
use of org.neo4j.bolt.runtime.Neo4jError in project neo4j by neo4j.
the class BoltStateMachineV4Test method shouldInvokeResponseHandlerOnMarkFailedIfThereIsHandler.
@Test
void shouldInvokeResponseHandlerOnMarkFailedIfThereIsHandler() throws Exception {
BoltStateMachine machine = init(newMachine());
Neo4jError error = Neo4jError.from(Status.Request.NoThreadsAvailable, "no threads");
BoltResponseHandler responseHandler = mock(BoltResponseHandler.class);
((AbstractBoltStateMachine) machine).connectionState().setResponseHandler(responseHandler);
machine.markFailed(error);
assertNull(pendingError(machine));
assertFalse(pendingIgnore(machine));
assertThat(machine).satisfies(inState(FailedState.class));
verify(responseHandler).markFailed(error);
}
use of org.neo4j.bolt.runtime.Neo4jError in project neo4j by neo4j.
the class BoltStateMachineV4Test method testReadyStateAfterMarkFailedOnNextMessage.
private static void testReadyStateAfterMarkFailedOnNextMessage(ThrowingBiConsumer<BoltStateMachine, BoltResponseHandler, BoltConnectionFatality> action) throws Exception {
// Given
BoltStateMachine machine = init(newMachine());
BoltResponseHandler responseHandler = mock(BoltResponseHandler.class);
Neo4jError error = Neo4jError.from(Status.Request.NoThreadsAvailable, "no threads");
machine.markFailed(error);
// When
action.accept(machine, responseHandler);
// Expect
assertNull(pendingError(machine));
assertFalse(pendingIgnore(machine));
assertThat(machine).satisfies(inState(ReadyState.class));
verify(responseHandler, never()).markFailed(any());
verify(responseHandler, never()).markIgnored();
}
use of org.neo4j.bolt.runtime.Neo4jError in project neo4j by neo4j.
the class BoltStateMachineV4Test method shouldSetPendingIgnoreOnMarkFailedIfAlreadyFailedAndNoHandler.
@Test
void shouldSetPendingIgnoreOnMarkFailedIfAlreadyFailedAndNoHandler() throws Exception {
BoltStateMachine machine = newMachine();
Neo4jError error1 = Neo4jError.from(new RuntimeException());
machine.markFailed(error1);
Neo4jError error2 = Neo4jError.from(Status.Request.NoThreadsAvailable, "no threads");
machine.markFailed(error2);
assertTrue(pendingIgnore(machine));
// error remained the same and was ignored
assertEquals(error1, pendingError(machine));
assertThat(machine).satisfies(inState(FailedState.class));
}
Aggregations