diff options
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java')
-rw-r--r-- | v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java b/v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java new file mode 100644 index 000000000..12928e684 --- /dev/null +++ b/v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java @@ -0,0 +1,46 @@ +package com.xtremelabs.robolectric.matchers; + +import android.widget.ImageView; +import org.hamcrest.Description; +import org.hamcrest.Factory; +import org.hamcrest.Matcher; +import org.junit.internal.matchers.TypeSafeMatcher; + +import static com.xtremelabs.robolectric.Robolectric.shadowOf; + +public class HasResourceMatcher extends TypeSafeMatcher<ImageView> { + private int expectedResourceId; + private Integer actualResourceId; + + public HasResourceMatcher(int expectedResourceId) { + this.expectedResourceId = expectedResourceId; + } + + @Override + public boolean matchesSafely(ImageView actual) { + if (actual == null) { + return false; + } + + actualResourceId = shadowOf(actual).getResourceId(); + + return actualResourceId == expectedResourceId; + } + + @Override + public void describeTo(Description description) { + if (actualResourceId == null) { + description.appendText("actual view was null"); + } else { + description.appendText("[" + actualResourceId + "]"); + description.appendText(" to equal "); + description.appendText("[" + expectedResourceId + "]"); + } + } + + @Factory + public static Matcher<ImageView> hasResource(int expectedResourceId) { + return new HasResourceMatcher(expectedResourceId); + } + +} |