return new BaseMatcher<RestClientException>() {
@Override
public boolean matches(final Object item) {
if (item instanceof RestClientException) {
final RestClientException ex = (RestClientException) item;
final Matcher<Iterable<? extends String>> errorMessageMatcher = Matchers
.contains(expectedErrorMessage);
return ex.getStatusCode().get().equals(statusCode)
&& ex.getErrorCollections().size() == 1
&& errorMessageMatcher.matches(ex.getErrorCollections().iterator().next().getErrorMessages());
}
return false;
}
@Override
public void describeTo(final Description description) {
final ErrorCollection expectedErrorCollection = ErrorCollection.builder()
.errorMessage(expectedErrorMessage).status(statusCode) .build();
final RestClientException expectedException = new RestClientException(
ImmutableList.of(expectedErrorCollection), statusCode);
description.appendText("<"+expectedException.toString()+">");
}
};
}