Search in sources :

Example 1 with JsonParseException

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) {
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) HTTP(org.neo4j.test.server.HTTP) JsonNode(org.codehaus.jackson.JsonNode) JsonParseException(org.neo4j.server.rest.domain.JsonParseException)

Example 2 with JsonParseException

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) {
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) HTTP(org.neo4j.test.server.HTTP) JsonNode(org.codehaus.jackson.JsonNode) JsonParseException(org.neo4j.server.rest.domain.JsonParseException)

Example 3 with JsonParseException

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) {
        }
    };
}
Also used : Status(org.neo4j.kernel.api.exceptions.Status) TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) HTTP(org.neo4j.test.server.HTTP) JsonNode(org.codehaus.jackson.JsonNode) JsonParseException(org.neo4j.server.rest.domain.JsonParseException)

Example 4 with JsonParseException

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) {
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) HTTP(org.neo4j.test.server.HTTP) JsonNode(org.codehaus.jackson.JsonNode) JsonParseException(org.neo4j.server.rest.domain.JsonParseException)

Example 5 with JsonParseException

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) {
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) HTTP(org.neo4j.test.server.HTTP) JsonNode(org.codehaus.jackson.JsonNode) JsonParseException(org.neo4j.server.rest.domain.JsonParseException)

Aggregations

JsonParseException (org.neo4j.server.rest.domain.JsonParseException)12 JsonNode (org.codehaus.jackson.JsonNode)8 Description (org.hamcrest.Description)7 TypeSafeMatcher (org.hamcrest.TypeSafeMatcher)7 HTTP (org.neo4j.test.server.HTTP)7 Response (org.neo4j.test.server.HTTP.Response)3 Before (org.junit.Before)2 ArrayList (java.util.ArrayList)1 Collection (java.util.Collection)1 MBeanServer (javax.management.MBeanServer)1 MalformedObjectNameException (javax.management.MalformedObjectNameException)1 ObjectName (javax.management.ObjectName)1 Consumes (javax.ws.rs.Consumes)1 POST (javax.ws.rs.POST)1 Path (javax.ws.rs.Path)1 Matchers.containsString (org.hamcrest.Matchers.containsString)1 Status (org.neo4j.kernel.api.exceptions.Status)1 JmxMBeanRepresentation (org.neo4j.server.rest.management.repr.JmxMBeanRepresentation)1 ListRepresentation (org.neo4j.server.rest.repr.ListRepresentation)1