use of org.hamcrest.Description in project jetty.project by eclipse.
the class FileSystemResourceTest method isAliasFor.
private Matcher<Resource> isAliasFor(final Resource resource) {
return new BaseMatcher<Resource>() {
@Override
public boolean matches(Object item) {
final Resource ritem = (Resource) item;
final URI alias = ritem.getAlias();
if (alias == null) {
return ritem == null;
} else {
return alias.equals(resource.getURI());
}
}
@Override
public void describeTo(Description description) {
description.appendText("getAlias should return ").appendValue(resource.getURI());
}
@Override
public void describeMismatch(Object item, Description description) {
description.appendText("was ").appendValue(((Resource) item).getAlias());
}
};
}
use of org.hamcrest.Description in project gocd by gocd.
the class Pop3Matchers method emailCount.
public static TypeSafeMatcher<Pop3MailClient> emailCount(final String subject, int count) {
return new TypeSafeMatcher<Pop3MailClient>() {
private String errorMessage = "";
public boolean matchesSafely(Pop3MailClient client) {
try {
Message message = client.findMessageWithSubject(subject);
boolean b = message != null;
if (b) {
errorMessage = "No message";
}
return b;
} catch (Exception e) {
errorMessage = e.getMessage();
return false;
}
}
public void describeTo(Description description) {
description.appendText(String.format("Expected to find message with subject [%s], but got error: %s", subject, errorMessage));
}
};
}
use of org.hamcrest.Description in project gocd by gocd.
the class GoConfigServiceTest method hasValues.
private Matcher<PipelineSelections> hasValues(final List<String> isVisible, final List<String> isNotVisible, final Date today, final Long userId) {
return new BaseMatcher<PipelineSelections>() {
public boolean matches(Object o) {
PipelineSelections pipelineSelections = (PipelineSelections) o;
assertHasSelected(pipelineSelections, isVisible);
assertHasSelected(pipelineSelections, isNotVisible, false);
assertThat(pipelineSelections.lastUpdated(), is(today));
assertThat(pipelineSelections.userId(), is(userId));
return true;
}
public void describeTo(Description description) {
}
};
}
use of org.hamcrest.Description in project gocd by gocd.
the class EmailMatchers method emailSubjectContains.
public static TypeSafeMatcher<Pop3MailClient> emailSubjectContains(final String subject) {
return new TypeSafeMatcher<Pop3MailClient>() {
private String errorMessage = "";
public boolean matchesSafely(Pop3MailClient client) {
try {
Message message = client.findMessageWithSubject(subject);
boolean found = message != null;
if (!found) {
errorMessage = "No message";
}
return found;
} catch (Exception e) {
errorMessage = e.getMessage();
return false;
}
}
public void describeTo(Description description) {
description.appendText(String.format("Expected to find message with subject [%s], but got error: %s", subject, errorMessage));
}
};
}
use of org.hamcrest.Description in project iosched by google.
the class MatchersHelper method approximateTimeUriMatcher.
/**
* Some {@link Uri} include specific times, for example all sessions after a given time. Even
* though time can be set in tests, {@link com.google.samples.apps.iosched.util.TimeUtils
* .getCurrentTime()} takes into account the passage of time so two separate calls to it will
* return slightly different values. This matcher applies an approximation of 10 seconds.
* <p/>
* Note: it assumes the time portion of the {@link Uri} is the last segment.
*/
public static Matcher<Uri> approximateTimeUriMatcher(final Uri expectedUri) {
return new BaseMatcher<Uri>() {
@Override
public void describeTo(final Description description) {
description.appendText("approximateTimeUriMatcher");
}
@Override
public boolean matches(final Object item) {
if (item instanceof Uri) {
Uri actualUri = (Uri) item;
// Check the last segment is a time
long expectedTime = 0L;
long actualTime = 0L;
try {
expectedTime = Long.parseLong(expectedUri.getLastPathSegment());
} catch (NumberFormatException e) {
return false;
}
try {
actualTime = Long.parseLong(actualUri.getLastPathSegment());
} catch (NumberFormatException e) {
return false;
}
// If the times are within 10 seconds of each other, check other segments
if (Math.abs(actualTime - expectedTime) < TimeUtils.SECOND * 10) {
List<String> actualSegments = actualUri.getPathSegments();
List<String> expectedSegments = expectedUri.getPathSegments();
// If same number of segments
if (actualSegments.size() == expectedSegments.size()) {
boolean diffFound = false;
// Check each segment except the last
for (int i = 0; i < actualSegments.size() - 1; i++) {
if (!actualSegments.get(i).equals(expectedSegments.get(i))) {
diffFound = true;
}
}
// They match only if no differences were found
return !diffFound;
}
}
}
return false;
}
@Override
public void describeMismatch(final Object item, final Description mismatchDescription) {
mismatchDescription.appendText("item doesn't match uri " + expectedUri + " with an approximataion of 10 seconds for the last time segment");
}
};
}
Aggregations