Search in sources :

Example 51 with Description

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());
        }
    };
}
Also used : Description(org.hamcrest.Description) BaseMatcher(org.hamcrest.BaseMatcher) URI(java.net.URI)

Example 52 with Description

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));
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) Pop3MailClient(com.thoughtworks.go.utils.Pop3MailClient) Message(javax.mail.Message)

Example 53 with Description

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) {
        }
    };
}
Also used : PipelineSelections(com.thoughtworks.go.server.domain.user.PipelineSelections) Description(org.hamcrest.Description) BaseMatcher(org.hamcrest.BaseMatcher)

Example 54 with 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));
        }
    };
}
Also used : TypeSafeMatcher(org.hamcrest.TypeSafeMatcher) Description(org.hamcrest.Description) Pop3MailClient(com.thoughtworks.go.utils.Pop3MailClient) Message(javax.mail.Message)

Example 55 with Description

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");
        }
    };
}
Also used : Description(org.hamcrest.Description) BaseMatcher(org.hamcrest.BaseMatcher) Uri(android.net.Uri)

Aggregations

Description (org.hamcrest.Description)117 Test (org.junit.Test)37 TypeSafeMatcher (org.hamcrest.TypeSafeMatcher)35 StringDescription (org.hamcrest.StringDescription)26 BaseMatcher (org.hamcrest.BaseMatcher)25 View (android.view.View)22 ViewParent (android.view.ViewParent)11 TextView (android.widget.TextView)11 ViewGroup (android.view.ViewGroup)8 Expectations (org.jmock.Expectations)8 URL (java.net.URL)7 Matcher (org.hamcrest.Matcher)7 Invocation (org.jmock.api.Invocation)7 BoundedMatcher (android.support.test.espresso.matcher.BoundedMatcher)6 ImageView (android.widget.ImageView)6 File (java.io.File)6 IOException (java.io.IOException)6 URI (java.net.URI)6 List (java.util.List)6 JsonNode (org.codehaus.jackson.JsonNode)6