use of org.neo4j.bolt.v1.runtime.BoltStateMachine in project neo4j by neo4j.
the class BoltMatchers method hasNoTransaction.
public static Matcher<BoltStateMachine> hasNoTransaction() {
return new BaseMatcher<BoltStateMachine>() {
@Override
public boolean matches(final Object item) {
final BoltStateMachine machine = (BoltStateMachine) item;
final StatementProcessor statementProcessor = machine.statementProcessor();
return statementProcessor == null || !statementProcessor.hasTransaction();
}
@Override
public void describeTo(Description description) {
description.appendText("no transaction");
}
};
}
use of org.neo4j.bolt.v1.runtime.BoltStateMachine in project neo4j by neo4j.
the class MonitoredBoltWorkerFactoryTest method shouldSignalReceivedStartAndComplete.
@Test
public void shouldSignalReceivedStartAndComplete() throws Throwable {
// given
FakeClock clock = Clocks.fakeClock();
WorkerFactory delegate = mock(WorkerFactory.class);
BoltStateMachine machine = mock(BoltStateMachine.class);
when(delegate.newWorker(anyObject(), anyObject())).thenReturn(new BoltWorker() {
@Override
public void enqueue(Job job) {
clock.forward(1337, TimeUnit.MILLISECONDS);
try {
job.perform(machine);
} catch (BoltConnectionFatality connectionFatality) {
throw new RuntimeException(connectionFatality);
}
}
@Override
public void interrupt() {
throw new RuntimeException();
}
@Override
public void halt() {
throw new RuntimeException();
}
});
Monitors monitors = new Monitors();
CountingSessionMonitor monitor = new CountingSessionMonitor();
monitors.addMonitorListener(monitor);
MonitoredWorkerFactory workerFactory = new MonitoredWorkerFactory(monitors, delegate, clock);
BoltWorker worker = workerFactory.newWorker(CONNECTION_DESCRIPTOR);
// when
worker.enqueue((stateMachine) -> {
stateMachine.run("hello", null, nullResponseHandler());
clock.forward(1338, TimeUnit.MILLISECONDS);
});
// then
assertEquals(1, monitor.messagesReceived);
assertEquals(1337, monitor.queueTime);
assertEquals(1338, monitor.processingTime);
}
use of org.neo4j.bolt.v1.runtime.BoltStateMachine in project neo4j by neo4j.
the class BoltConnectionAuthIT method shouldGiveKernelVersionOnInit.
@Test
public void shouldGiveKernelVersionOnInit() throws Throwable {
// Given it is important for client applications to programmatically
// identify expired credentials as the cause of not being authenticated
BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
BoltResponseRecorder recorder = new BoltResponseRecorder();
String version = "Neo4j/" + Version.getNeo4jVersion();
// When
machine.init(USER_AGENT, map("scheme", "basic", "principal", "neo4j", "credentials", "neo4j"), recorder);
machine.run("CREATE ()", map(), recorder);
// Then
assertThat(recorder.nextResponse(), succeededWithMetadata("server", version));
}
use of org.neo4j.bolt.v1.runtime.BoltStateMachine in project neo4j by neo4j.
the class BoltConnectionAuthIT method shouldBeAbleToActOnSessionWhenUpdatingCredentials.
@Test
public void shouldBeAbleToActOnSessionWhenUpdatingCredentials() throws Throwable {
BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
BoltResponseRecorder recorder = new BoltResponseRecorder();
// when
machine.init(USER_AGENT, map("scheme", "basic", "principal", "neo4j", "credentials", "neo4j", "new_credentials", "secret"), recorder);
machine.run("CREATE ()", map(), recorder);
// then
assertThat(recorder.nextResponse(), succeeded());
assertThat(recorder.nextResponse(), succeeded());
}
use of org.neo4j.bolt.v1.runtime.BoltStateMachine in project neo4j by neo4j.
the class BoltConnectionAuthIT method shouldGiveCredentialsExpiredStatusOnExpiredCredentials.
@Test
public void shouldGiveCredentialsExpiredStatusOnExpiredCredentials() throws Throwable {
// Given it is important for client applications to programmatically
// identify expired credentials as the cause of not being authenticated
BoltStateMachine machine = env.newMachine(CONNECTION_DESCRIPTOR);
BoltResponseRecorder recorder = new BoltResponseRecorder();
// When
machine.init(USER_AGENT, map("scheme", "basic", "principal", "neo4j", "credentials", "neo4j"), recorder);
machine.run("CREATE ()", map(), recorder);
// Then
assertThat(recorder.nextResponse(), succeededWithMetadata("credentials_expired", true));
assertThat(recorder.nextResponse(), failedWithStatus(Status.Security.CredentialsExpired));
}
Aggregations