// Path: app/src/androidTest/java/io/petros/posts/util/matcher/RecyclerViewMatcher.java
// public class RecyclerViewMatcher {
// 
//     private final int recyclerViewId;
// 
//     public RecyclerViewMatcher(final int recyclerViewId) {
//         this.recyclerViewId = recyclerViewId;
//     }
// 
//     public Matcher<View> atPosition(final int position) {
//         return atPositionOnView(position, -1);
//     }
// 
//     public Matcher<View> atPositionOnView(final int position, final int targetViewId) {
//         return new RecyclerTypeSafeMatcher(recyclerViewId, position, targetViewId);
//     }
// 
// }


import io.petros.posts.util.matcher.RecyclerViewMatcher;
package io.petros.posts.util;


/**
 * Showcasing how custom matcher can be utilised.
 */
public final class MatcherEspressoUtilities {

    private MatcherEspressoUtilities() {
        throw new AssertionError();
    }

// Path: app/src/androidTest/java/io/petros/posts/util/matcher/RecyclerViewMatcher.java
// public class RecyclerViewMatcher {
// 
//     private final int recyclerViewId;
// 
//     public RecyclerViewMatcher(final int recyclerViewId) {
//         this.recyclerViewId = recyclerViewId;
//     }
// 
//     public Matcher<View> atPosition(final int position) {
//         return atPositionOnView(position, -1);
//     }
// 
//     public Matcher<View> atPositionOnView(final int position, final int targetViewId) {
//         return new RecyclerTypeSafeMatcher(recyclerViewId, position, targetViewId);
//     }
// 
// }


// Path: app/src/androidTest/java/io/petros/posts/util/MatcherEspressoUtilities.java
import io.petros.posts.util.matcher.RecyclerViewMatcher;

package io.petros.posts.util;


/**
 * Showcasing how custom matcher can be utilised.
 */
public final class MatcherEspressoUtilities {

    private MatcherEspressoUtilities() {
        throw new AssertionError();
    }

    public static RecyclerViewMatcher withRecyclerView(final int recyclerViewId) {