1a2043a8fff01f3e2d9a5e30dd1cf5fb6a5342f4dTyler Schultzpackage com.xtremelabs.robolectric.matchers; 2d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 3d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultzimport android.widget.CompoundButton; 4d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultzimport org.hamcrest.Description; 5d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultzimport org.hamcrest.Factory; 6d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultzimport org.hamcrest.Matcher; 789d4bea57d9c9a8b070649763b681b614ce18969Jon Boekenoogenimport org.junit.internal.matchers.TypeSafeMatcher; 8d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 9d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultzpublic class CompoundButtonCheckedMatcher<T extends CompoundButton> extends TypeSafeMatcher<T> { 10d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz private boolean expected; 11d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 12d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz public CompoundButtonCheckedMatcher(boolean expected) { 13d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz this.expected = expected; 14d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz } 15d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 1689d4bea57d9c9a8b070649763b681b614ce18969Jon Boekenoogen @Override public boolean matchesSafely(T compoundButton) { 17d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz return compoundButton != null && expected == compoundButton.isChecked(); 18d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz } 19d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 20d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz @Override public void describeTo(Description description) { 21d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz description.appendText("to be [" + (expected ? "checked" : "unchecked") + "]"); 22d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz } 23d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz 24d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz @Factory 25d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz public static <T extends CompoundButton> Matcher<T> isChecked(boolean expectedChecked) { 26d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz return new CompoundButtonCheckedMatcher<T>(expectedChecked); 27d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz } 28d56fc1234333a830038735dec0fc32dfbb67b7c3Ryan Richard & Tyler Schultz} 29