// Path: agera/src/main/java/com/google/android/agera/Observables.java
// @NonNull
// public static UpdateDispatcher updateDispatcher() {
//   return new AsyncUpdateDispatcher(null);
// }
// 
// Path: agera/src/main/java/com/google/android/agera/Repositories.java
// @NonNull
// public static <T> MutableRepository<T> mutableRepository(@NonNull final T object) {
//   return new SimpleRepository<>(object);
// }
// 
// Path: agera/src/main/java/com/google/android/agera/Repositories.java
// @NonNull
// public static <T> Repository<T> repository(@NonNull final T object) {
//   return new SimpleRepository<>(object);
// }
// 
// Path: extensions/rvadapter/src/main/java/com/google/android/agera/rvadapter/RepositoryAdapter.java
// @NonNull
// public static Builder repositoryAdapter() {
//   return new Builder();
// }


import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
import static com.google.android.agera.Observables.updateDispatcher;
import static com.google.android.agera.Repositories.mutableRepository;
import static com.google.android.agera.Repositories.repository;
import static com.google.android.agera.rvadapter.RepositoryAdapter.repositoryAdapter;
import static java.util.Arrays.asList;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentCaptor.forClass;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.robolectric.annotation.Config.NONE;
import static org.robolectric.shadows.ShadowLooper.runUiThreadTasksIncludingDelayedTasks;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Application;
import android.app.Application.ActivityLifecycleCallbacks;
import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.AdapterDataObserver;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.agera.MutableRepository;
import com.google.android.agera.Repository;
import com.google.android.agera.UpdateDispatcher;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
  @Mock
  private RepositoryPresenter repositoryPresenter;
  @Mock
  private RepositoryPresenter secondRepositoryPresenter;
  @Mock
  private RepositoryPresenter singleItemRepositoryPresenter;
  @Mock
  private RepositoryPresenter multiItemRepositoryPresenter;
  @Mock
  private RepositoryPresenter zeroItemRepositoryPresenter;
  @Mock
  private LayoutPresenter layoutPresenter;
  @Mock
  private LayoutPresenter secondLayoutPresenter;
  @Mock
  private ViewHolder viewHolder;
  @Mock
  private ViewGroup viewGroup;
  @Mock
  private Context context;
  @Mock
  private LayoutInflater layoutInflater;
  @Mock
  private View view;
  @Mock
  private Activity activity;
  @Mock
  private Application application;
  @Mock
  private AdapterDataObserver observer;
// Path: agera/src/main/java/com/google/android/agera/Observables.java
// @NonNull
// public static UpdateDispatcher updateDispatcher() {
//   return new AsyncUpdateDispatcher(null);
// }
// 
// Path: agera/src/main/java/com/google/android/agera/Repositories.java
// @NonNull
// public static <T> MutableRepository<T> mutableRepository(@NonNull final T object) {
//   return new SimpleRepository<>(object);
// }
// 
// Path: agera/src/main/java/com/google/android/agera/Repositories.java
// @NonNull
// public static <T> Repository<T> repository(@NonNull final T object) {
//   return new SimpleRepository<>(object);
// }
// 
// Path: extensions/rvadapter/src/main/java/com/google/android/agera/rvadapter/RepositoryAdapter.java
// @NonNull
// public static Builder repositoryAdapter() {
//   return new Builder();
// }


// Path: extensions/rvadapter/src/test/java/com/google/android/agera/rvadapter/RepositoryAdapterTest.java
import static android.os.Build.VERSION_CODES.ICE_CREAM_SANDWICH;
import static com.google.android.agera.Observables.updateDispatcher;
import static com.google.android.agera.Repositories.mutableRepository;
import static com.google.android.agera.Repositories.repository;
import static com.google.android.agera.rvadapter.RepositoryAdapter.repositoryAdapter;
import static java.util.Arrays.asList;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentCaptor.forClass;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.mockito.MockitoAnnotations.initMocks;
import static org.robolectric.annotation.Config.NONE;
import static org.robolectric.shadows.ShadowLooper.runUiThreadTasksIncludingDelayedTasks;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.Application;
import android.app.Application.ActivityLifecycleCallbacks;
import android.content.Context;
import android.support.annotation.LayoutRes;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.AdapterDataObserver;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.agera.MutableRepository;
import com.google.android.agera.Repository;
import com.google.android.agera.UpdateDispatcher;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;

  @Mock
  private RepositoryPresenter repositoryPresenter;
  @Mock
  private RepositoryPresenter secondRepositoryPresenter;
  @Mock
  private RepositoryPresenter singleItemRepositoryPresenter;
  @Mock
  private RepositoryPresenter multiItemRepositoryPresenter;
  @Mock
  private RepositoryPresenter zeroItemRepositoryPresenter;
  @Mock
  private LayoutPresenter layoutPresenter;
  @Mock
  private LayoutPresenter secondLayoutPresenter;
  @Mock
  private ViewHolder viewHolder;
  @Mock
  private ViewGroup viewGroup;
  @Mock
  private Context context;
  @Mock
  private LayoutInflater layoutInflater;
  @Mock
  private View view;
  @Mock
  private Activity activity;
  @Mock
  private Application application;
  @Mock
  private AdapterDataObserver observer;
  private UpdateDispatcher updateDispatcher;