use of org.neo4j.bolt.v1.messaging.message.FailureMessage in project neo4j by neo4j.
the class MessageMatchers method msgFailure.
public static Matcher<ResponseMessage> msgFailure(final Status status, final String message) {
return new TypeSafeMatcher<ResponseMessage>() {
@Override
protected boolean matchesSafely(ResponseMessage t) {
assertThat(t, instanceOf(FailureMessage.class));
FailureMessage msg = (FailureMessage) t;
assertThat(msg.status(), equalTo(status));
assertThat(msg.message(), containsString(message));
return true;
}
@Override
public void describeTo(Description description) {
description.appendText("FAILURE");
}
};
}
use of org.neo4j.bolt.v1.messaging.message.FailureMessage in project neo4j by neo4j.
the class BoltInteraction method collectResults.
private static BoltResult collectResults(TransportConnection client) throws Exception {
ResponseMessage message = TransportTestUtil.receiveOneResponseMessage(client);
List<String> fieldNames = new ArrayList<>();
List<Map<String, Object>> result = new ArrayList<>();
if (message instanceof SuccessMessage) {
Map<String, Object> metadata = ((SuccessMessage) message).meta();
fieldNames = (List<String>) metadata.get("fields");
} else if (message instanceof FailureMessage) {
FailureMessage failMessage = (FailureMessage) message;
// drain ignoredMessage, ack failure, get successMessage
TransportTestUtil.receiveOneResponseMessage(client);
client.send(TransportTestUtil.chunk(reset()));
TransportTestUtil.receiveOneResponseMessage(client);
throw new AuthenticationException(failMessage.status(), failMessage.message());
}
do {
message = TransportTestUtil.receiveOneResponseMessage(client);
if (message instanceof RecordMessage) {
Object[] row = ((RecordMessage) message).record().fields();
Map<String, Object> rowMap = new HashMap<>();
for (int i = 0; i < row.length; i++) {
rowMap.put(fieldNames.get(i), row[i]);
}
result.add(rowMap);
}
} while (!(message instanceof SuccessMessage) && !(message instanceof FailureMessage));
if (message instanceof FailureMessage) {
FailureMessage failMessage = (FailureMessage) message;
// ack failure, get successMessage
client.send(TransportTestUtil.chunk(reset()));
TransportTestUtil.receiveOneResponseMessage(client);
throw new AuthenticationException(failMessage.status(), failMessage.message());
}
return new BoltResult(result);
}
Aggregations