aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/matchers/HasResourceMatcher.java
diff options
context:
space:
mode:
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.java46
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);
+ }
+
+}