1c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpackage org.hamcrest.core;
2c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
3c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.hamcrest.Matcher;
4c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport org.junit.Test;
5c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
6c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.AbstractMatcherTest.assertDescription;
7c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.AbstractMatcherTest.assertMatches;
8c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinimport static org.hamcrest.core.IsAnything.anything;
9c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
10c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffinpublic final class IsAnythingTest {
11c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
12c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    private final Matcher<Object> matcher = anything();
13c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
14c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    private static class CustomThing { }
15c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
16c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    @Test public void
17c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    alwaysEvaluatesToTrue() {
18c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertMatches("didn't match null", matcher, null);
19c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertMatches("didn't match Object", matcher, new Object());
20c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertMatches("didn't match custom object", matcher, new CustomThing());
21c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertMatches("didn't match String", matcher, "hi");
22c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
23c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
24c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    @Test public void
25c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    hasUsefulDefaultDescription() {
26c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertDescription("ANYTHING", matcher);
27c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
28c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
29c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    @Test public void
30c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    canOverrideDescription() {
31c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        String description = "description";
32c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin        assertDescription(description, anything(description));
33c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin    }
34c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin
35c1dbb44e71e47410ad5685aba3ef3fccb095a2b4Paul Duffin}
36