1c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpackage org.hamcrest;
2c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
3c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
4c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpublic class MatcherAssert {
5c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    public static <T> void assertThat(T actual, Matcher<? super T> matcher) {
6c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertThat("", actual, matcher);
7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    public static <T> void assertThat(String reason, T actual, Matcher<? super T> matcher) {
10c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        if (!matcher.matches(actual)) {
11c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin            Description description = new StringDescription();
12c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin            description.appendText(reason)
13c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin                       .appendText("\nExpected: ")
14c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin                       .appendDescriptionOf(matcher)
15c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin                       .appendText("\n     but: ");
16c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin            matcher.describeMismatch(actual, description);
17c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
18c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin            throw new AssertionError(description.toString());
19c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        }
20c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    public static void assertThat(String reason, boolean assertion) {
23c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        if (!assertion) {
24c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin            throw new AssertionError(reason);
25c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        }
26c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin}
28