use of org.hamcrest.Description 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.hamcrest.Description 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.hamcrest.Description in project druid by druid-io.
the class LookupCoordinatorManagerTest method testUpdateAllOnHostException.
@Test
public void testUpdateAllOnHostException() throws Exception {
final HttpResponseHandler<InputStream, InputStream> responseHandler = EasyMock.createStrictMock(HttpResponseHandler.class);
final URL url = LookupCoordinatorManager.getLookupsURL(HostAndPort.fromString("localhost"));
final SettableFuture<InputStream> future = SettableFuture.create();
future.set(new ByteArrayInputStream(new byte[0]));
EasyMock.expect(client.go(EasyMock.<Request>anyObject(), EasyMock.<SequenceInputStreamResponseHandler>anyObject(), EasyMock.<Duration>anyObject())).andReturn(future).once();
EasyMock.replay(client, responseHandler);
final LookupCoordinatorManager manager = new LookupCoordinatorManager(client, discoverer, mapper, configManager, lookupCoordinatorManagerConfig) {
@Override
HttpResponseHandler<InputStream, InputStream> makeResponseHandler(final AtomicInteger returnCode, final AtomicReference<String> reasonString) {
returnCode.set(500);
reasonString.set("");
return responseHandler;
}
};
expectedException.expect(new BaseMatcher<Throwable>() {
@Override
public boolean matches(Object o) {
return o instanceof IOException && ((IOException) o).getMessage().startsWith("Bad update request");
}
@Override
public void describeTo(Description description) {
}
});
try {
manager.updateAllOnHost(url, SINGLE_LOOKUP_MAP);
} finally {
EasyMock.verify(client, responseHandler);
}
}
use of org.hamcrest.Description in project druid by druid-io.
the class LookupCoordinatorManagerTest method testLookupDiscoverAllExceptional.
@Test
public void testLookupDiscoverAllExceptional() throws Exception {
final IOException ex = new IOException("some exception");
EasyMock.reset(discoverer);
EasyMock.expect(discoverer.discoverChildren(LookupCoordinatorManager.LOOKUP_LISTEN_ANNOUNCE_KEY)).andThrow(ex).once();
expectedException.expectCause(new BaseMatcher<Throwable>() {
@Override
public boolean matches(Object o) {
return o == ex;
}
@Override
public void describeTo(Description description) {
}
});
EasyMock.replay(discoverer);
final LookupCoordinatorManager manager = new LookupCoordinatorManager(client, discoverer, mapper, configManager, lookupCoordinatorManagerConfig);
try {
manager.discoverTiers();
} finally {
EasyMock.verify(discoverer);
}
}
use of org.hamcrest.Description in project neo4j by neo4j.
the class StreamMatchers method equalsStream.
public static Matcher<BoltResult> equalsStream(final String[] fieldNames, final Matcher... records) {
return new TypeSafeMatcher<BoltResult>() {
@Override
protected boolean matchesSafely(BoltResult item) {
if (!Arrays.equals(fieldNames, item.fieldNames())) {
return false;
}
final Iterator<Matcher> expected = asList(records).iterator();
final AtomicBoolean matched = new AtomicBoolean(true);
try {
item.accept(new BoltResult.Visitor() {
@Override
public void visit(Record record) {
if (!expected.hasNext() || !expected.next().matches(record)) {
matched.set(false);
}
}
@Override
public void addMetadata(String key, Object value) {
}
});
} catch (Exception e) {
throw new RuntimeException(e);
}
// All records matched, and there are no more expected records.
return matched.get() && !expected.hasNext();
}
@Override
public void describeTo(Description description) {
description.appendText("Stream[").appendValueList(" fieldNames=[", ",", "]", fieldNames).appendList(", records=[", ",", "]", asList(records));
}
};
}
Aggregations