blob: 58fb3ef37953003037ffa90fc072438b97c9c796 [file] [log] [blame]
package com.xtremelabs.robolectric.matchers;
import android.widget.TextView;
import com.xtremelabs.robolectric.shadows.ShadowTextView;
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 HasCompoundDrawablesMatcher extends TypeSafeMatcher<TextView> {
private String message;
private ShadowTextView.CompoundDrawables expectedCompoundDrawables;
public HasCompoundDrawablesMatcher(int left, int top, int right, int bottom) {
expectedCompoundDrawables = new ShadowTextView.CompoundDrawables(left, top, right, bottom);
}
@Override
public boolean matchesSafely(TextView actual) {
if (actual == null) {
message = "actual view was null";
return false;
}
ShadowTextView.CompoundDrawables actualCompoundDrawables = shadowOf(actual).getCompoundDrawablesImpl();
if (!expectedCompoundDrawables.equals(actualCompoundDrawables)) {
message = "[" + actualCompoundDrawables + "] to equal [" + expectedCompoundDrawables + "]";
return false;
} else {
return true;
}
}
@Override
public void describeTo(Description description) {
description.appendText(message);
}
@Factory
public static Matcher<TextView> hasCompoundDrawables(int left, int top, int right, int bottom) {
return new HasCompoundDrawablesMatcher(left, top, right, bottom);
}
}