use of org.codehaus.jackson.JsonNode in project neo4j by neo4j.
the class TransactionMatchers method hasErrors.
public static Matcher<? super HTTP.Response> hasErrors(final Status... expectedErrors) {
return new TypeSafeMatcher<HTTP.Response>() {
@Override
protected boolean matchesSafely(HTTP.Response response) {
try {
Iterator<JsonNode> errors = response.get("errors").iterator();
Iterator<Status> expected = iterator(expectedErrors);
while (expected.hasNext()) {
assertTrue(errors.hasNext());
assertThat(errors.next().get("code").asText(), equalTo(expected.next().code().serialize()));
}
if (errors.hasNext()) {
JsonNode error = errors.next();
fail("Expected no more errors, but got " + error.get("code") + " - '" + error.get("message") + "'.");
}
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.codehaus.jackson.JsonNode in project neo4j by neo4j.
the class TransactionMatchers method restContainsDeletedEntities.
public static Matcher<? super HTTP.Response> restContainsDeletedEntities(final int amount) {
return new TypeSafeMatcher<HTTP.Response>() {
@Override
protected boolean matchesSafely(HTTP.Response response) {
try {
Iterator<JsonNode> entities = getJsonNodeWithName(response, "rest").iterator();
for (int i = 0; i < amount; ++i) {
assertTrue(entities.hasNext());
JsonNode node = entities.next();
assertThat(node.get("metadata").get("deleted").asBoolean(), equalTo(Boolean.TRUE));
}
if (entities.hasNext()) {
fail("Expected no more entities");
}
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.codehaus.jackson.JsonNode in project neo4j by neo4j.
the class TransactionMatchers method rowContainsDeletedEntitiesInPath.
public static Matcher<? super HTTP.Response> rowContainsDeletedEntitiesInPath(final int nodes, final int rels) {
return new TypeSafeMatcher<HTTP.Response>() {
@Override
protected boolean matchesSafely(HTTP.Response response) {
try {
Iterator<JsonNode> meta = getJsonNodeWithName(response, "meta").iterator();
int nodeCounter = 0;
int relCounter = 0;
assertTrue("Expected to find a JSON node, but there was none", meta.hasNext());
JsonNode node = meta.next();
assertTrue("Expected the node to be a list (for a path)", node.isArray());
for (JsonNode inner : node) {
String type = inner.get("type").getTextValue();
switch(type) {
case "node":
if (inner.get("deleted").asBoolean()) {
++nodeCounter;
}
break;
case "relationship":
if (inner.get("deleted").asBoolean()) {
++relCounter;
}
break;
default:
fail("Unexpected type: " + type);
break;
}
}
assertEquals(nodes, nodeCounter);
assertEquals(rels, relCounter);
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.codehaus.jackson.JsonNode in project neo4j by neo4j.
the class TransactionMatchers method graphContainsDeletedNodes.
public static Matcher<? super HTTP.Response> graphContainsDeletedNodes(final int amount) {
return new TypeSafeMatcher<HTTP.Response>() {
@Override
protected boolean matchesSafely(HTTP.Response response) {
try {
Iterator<JsonNode> nodes = getJsonNodeWithName(response, "graph").get("nodes").iterator();
for (int i = 0; i < amount; ++i) {
assertTrue(nodes.hasNext());
JsonNode node = nodes.next();
assertThat(node.get("deleted").asBoolean(), equalTo(Boolean.TRUE));
}
while (nodes.hasNext()) {
JsonNode node = nodes.next();
assertNull(node.get("deleted"));
}
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.codehaus.jackson.JsonNode in project neo4j by neo4j.
the class TransactionMatchers method assertElementAtMetaIndex.
private static boolean assertElementAtMetaIndex(HTTP.Response response, int[] indexes, String element) {
try {
Iterator<JsonNode> meta = getJsonNodeWithName(response, "meta").iterator();
int i = 0;
for (int metaIndex = 0; meta.hasNext() && i < indexes.length; metaIndex++) {
JsonNode node = meta.next();
if (!node.isNull()) {
String type = node.get("type").getTextValue();
if (type.equals(element)) {
assertEquals("Expected " + element + " to be at indexes " + Arrays.toString(indexes) + ", but found it at " + metaIndex, indexes[i], metaIndex);
++i;
} else {
assertNotEquals("Expected " + element + " at index " + metaIndex + ", but found " + type, indexes[i], metaIndex);
}
}
}
return i == indexes.length;
} catch (JsonParseException e) {
return false;
}
}
Aggregations