package com.nononsenseapps.notepad.test; import android.support.annotation.NonNull; import android.support.test.espresso.matcher.BoundedMatcher; import android.support.v7.widget.RecyclerView; import android.view.View; import org.hamcrest.Description; import org.hamcrest.Matcher; public class Utils { /** * Assertion on recyclerview item. */ public static Matcher<View> assertionOnItemAtPosition(final int position, @NonNull final Matcher<View> itemMatcher) { return new BoundedMatcher<View, RecyclerView>(RecyclerView.class) { @Override public void describeTo(Description description) { description.appendText("item at " + position + ": "); itemMatcher.describeTo(description); } @Override protected boolean matchesSafely(final RecyclerView view) { RecyclerView.ViewHolder viewHolder = view.findViewHolderForAdapterPosition(position); return viewHolder != null && itemMatcher.matches(viewHolder.itemView); } }; } }