use of org.neo4j.bolt.v4.messaging.RunMessage in project neo4j by neo4j.
the class BoltRequestMessageReaderV41Test method shouldDecodeBoltV3RunAndBeginMessageAsBoltV41Message.
@Test
void shouldDecodeBoltV3RunAndBeginMessageAsBoltV41Message() throws Exception {
org.neo4j.bolt.v3.messaging.request.RunMessage runMessageV3 = new org.neo4j.bolt.v3.messaging.request.RunMessage("RETURN 1", EMPTY_MAP);
org.neo4j.bolt.v3.messaging.request.BeginMessage beginMessageV3 = new org.neo4j.bolt.v3.messaging.request.BeginMessage();
RunMessage runMessageV4 = new RunMessage("RETURN 1", EMPTY_MAP);
BeginMessage beginMessageV4 = new BeginMessage();
verifyBoltV3MessageIsReadAsBoltV4Message(runMessageV3, runMessageV4);
verifyBoltV3MessageIsReadAsBoltV4Message(beginMessageV3, beginMessageV4);
}
use of org.neo4j.bolt.v4.messaging.RunMessage in project neo4j by neo4j.
the class MultipleBoltServerPortsStressTest method workload.
private static Runnable workload(AtomicBoolean failureFlag, SocketConnection connection, long finishTimeMillis) {
return () -> {
while (!failureFlag.get() && System.currentTimeMillis() < finishTimeMillis) {
try {
connection.send(util.chunk(new RunMessage("RETURN 1"), new PullMessage(asMapValue(map("n", -1L)))));
} catch (IOException e) {
e.printStackTrace();
}
try {
assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess()));
assertThat(connection).satisfies(util.eventuallyReceives(msgRecord(eqRecord(longValueCondition(1L)))));
assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess()));
} catch (AssertionError e) {
e.printStackTrace();
failureFlag.set(true);
}
}
};
}
use of org.neo4j.bolt.v4.messaging.RunMessage in project neo4j by neo4j.
the class TransportErrorIT method shouldHandleIncorrectFraming.
@ParameterizedTest(name = "{displayName} {2}")
@MethodSource("argumentsProvider")
public void shouldHandleIncorrectFraming(Class<? extends TransportConnection> connectionClass, Neo4jPack neo4jPack, String name) throws Exception {
initParameters(connectionClass, neo4jPack, name);
// Given I have a message that gets truncated in the chunking, so part of it is missing
byte[] truncated = serialize(util.getNeo4jPack(), new RunMessage("UNWIND [1,2,3] AS a RETURN a, a * a AS a_squared"));
truncated = Arrays.copyOf(truncated, truncated.length - 12);
// When
connection.connect(address).send(util.defaultAcceptedVersions()).send(util.chunk(32, truncated));
// Then
assertThat(connection).satisfies(util.eventuallyReceivesSelectedProtocolVersion());
assertThat(connection).satisfies(eventuallyDisconnects());
}
use of org.neo4j.bolt.v4.messaging.RunMessage in project neo4j by neo4j.
the class BoltRequestMessageReaderV43Test method shouldDecodeBoltV3RunAndBeginMessageAsBoltv43Message.
@Test
void shouldDecodeBoltV3RunAndBeginMessageAsBoltv43Message() throws Exception {
org.neo4j.bolt.v3.messaging.request.RunMessage runMessageV3 = new org.neo4j.bolt.v3.messaging.request.RunMessage("RETURN 1", EMPTY_MAP);
org.neo4j.bolt.v3.messaging.request.BeginMessage beginMessageV3 = new org.neo4j.bolt.v3.messaging.request.BeginMessage();
RunMessage runMessageV4 = new RunMessage("RETURN 1", EMPTY_MAP);
BeginMessage beginMessageV4 = new BeginMessage();
verifyBoltV3MessageIsReadAsBoltV4Message(runMessageV3, runMessageV4);
verifyBoltV3MessageIsReadAsBoltV4Message(beginMessageV3, beginMessageV4);
}
use of org.neo4j.bolt.v4.messaging.RunMessage in project neo4j by neo4j.
the class BoltV43TransportIT method shouldReturnUpdatedBookmarkAfterExplicitTransaction.
@ParameterizedTest(name = "{0}")
@MethodSource("argumentsProvider")
public void shouldReturnUpdatedBookmarkAfterExplicitTransaction(Class<? extends TransportConnection> connectionClass) throws Exception {
init(connectionClass);
assumeFalse(FabricDatabaseManager.fabricByDefault(Config.defaults()));
negotiateBoltV43();
// bookmark is expected to advance once the auto-commit transaction is committed
var lastClosedTransactionId = getLastClosedTransactionId();
var expectedBookmark = new BookmarkWithDatabaseId(lastClosedTransactionId + 1, getDatabaseId()).toString();
connection.send(util.chunk(new BeginMessage()));
assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess()));
connection.send(util.chunk(new RunMessage("CREATE ()"), new PullMessage(asMapValue(map("n", -1L)))));
assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess(), msgSuccess(message -> assertThat(message).doesNotContainEntry("bookmark", expectedBookmark))));
connection.send(util.chunk(CommitMessage.COMMIT_MESSAGE));
assertThat(connection).satisfies(util.eventuallyReceives(msgSuccess(message -> assertThat(message).containsEntry("bookmark", expectedBookmark))));
}
Aggregations