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 { 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 hasResource(int expectedResourceId) { return new HasResourceMatcher(expectedResourceId); } }