use of org.neo4j.server.rest.domain.JsonParseException in project neo4j by neo4j.
the class TransactionMatchers method rowContainsDeletedEntities.
public static Matcher<? super HTTP.Response> rowContainsDeletedEntities(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;
for (int i = 0; i < nodes + rels; ++i) {
assertTrue(meta.hasNext());
JsonNode node = meta.next();
assertThat(node.get("deleted").asBoolean(), equalTo(Boolean.TRUE));
String type = node.get("type").getTextValue();
switch(type) {
case "node":
++nodeCounter;
break;
case "relationship":
++relCounter;
break;
default:
fail("Unexpected type: " + type);
break;
}
}
assertEquals(nodes, nodeCounter);
assertEquals(rels, relCounter);
while (meta.hasNext()) {
JsonNode node = meta.next();
assertThat(node.get("deleted").asBoolean(), equalTo(Boolean.FALSE));
}
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.neo4j.server.rest.domain.JsonParseException in project neo4j by neo4j.
the class TransactionMatchers method graphContainsDeletedRelationships.
public static Matcher<? super HTTP.Response> graphContainsDeletedRelationships(final int amount) {
return new TypeSafeMatcher<HTTP.Response>() {
@Override
protected boolean matchesSafely(HTTP.Response response) {
try {
Iterator<JsonNode> relationships = getJsonNodeWithName(response, "graph").get("relationships").iterator();
for (int i = 0; i < amount; ++i) {
assertTrue(relationships.hasNext());
JsonNode node = relationships.next();
assertThat(node.get("deleted").asBoolean(), equalTo(Boolean.TRUE));
}
if (relationships.hasNext()) {
JsonNode node = relationships.next();
fail("Expected no more nodes, but got a node with id " + node.get("id"));
}
return true;
} catch (JsonParseException e) {
return false;
}
}
@Override
public void describeTo(Description description) {
}
};
}
use of org.neo4j.server.rest.domain.JsonParseException 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.neo4j.server.rest.domain.JsonParseException 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.neo4j.server.rest.domain.JsonParseException 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) {
}
};
}
Aggregations