@Test
 public void testOnItemClick_startsFullPhotoViewIntent() {
   subject.setupPhotoList();
   RecyclerView recyclerView = subject.getPhotoRecyclerView();
   recyclerView.measure(0, 0);
   recyclerView.layout(0, 0, 100, 1000);
   RecyclerView.ViewHolder viewHolder = recyclerView.findViewHolderForAdapterPosition(0);
   View view = viewHolder.itemView;
   view.performClick();
   Intent expectedIntent = new Intent(subject, PhotoFullScreenActivity.class);
   ShadowActivity shadowActivity = Shadows.shadowOf(subject);
   Intent actualIntent = shadowActivity.getNextStartedActivity();
   Assertions.assertThat(actualIntent).isNotNull();
   assertTrue(actualIntent.filterEquals(expectedIntent));
 }
  @Before
  public void setUp() throws Exception {
    MockitoAnnotations.initMocks(this);
    Mockito.stub(mPhotoListManager.getPhotoListFetched()).toReturn(true);

    activityController = Robolectric.buildActivity(PhotosListViewActivity.class);
    subject = activityController.get();
    Mockito.doAnswer(
            new Answer() {
              @Override
              public Object answer(InvocationOnMock invocation) throws Throwable {
                subject.requestPermissionCallback.Granted(1);
                return null;
              }
            })
        .when(mRequestPermissionUtils)
        .requestPermission(
            subject,
            Manifest.permission.ACCESS_FINE_LOCATION,
            subject.requestPermissionCallback,
            Constants.MY_PERMISSIONS_REQUEST_ACCESS_FINE_LOCATION);
    flickrPhotoList =
        new ArrayList<FlickrPhoto>(
            Arrays.asList(new FlickrPhoto("some-photo", "some-small-url", "some-big-url")));
    subject.setFlickrPhotoList(flickrPhotoList);
    activityController.create().start();
  }
 @Test
 public void testOnCreate_setsUpProgressBar() {
   ANDROID.assertThat(subject).isNotNull();
   ProgressBar progressBarSpinner = subject.getProgressBarSpinner();
   ANDROID.assertThat(progressBarSpinner).isNotNull();
   int visibility = progressBarSpinner.getVisibility();
   Assertions.assertThat(visibility).isEqualTo(View.VISIBLE);
 }
 @Test
 public void testPhotoListManagerDidFinish_withNoPhotos_ShowsToast() {
   List emptyFlickrPhotoList = new ArrayList<FlickrPhoto>();
   subject.photoListManagerDidFinish(emptyFlickrPhotoList);
   Toast actualToast = ShadowToast.getLatestToast();
   Assertions.assertThat(actualToast).isNotNull();
   String actualToastText = ShadowToast.getTextOfLatestToast();
   Assertions.assertThat(actualToastText).isEqualTo("Flickr api response malformed");
 }
 @Test
 public void testOnCreate_setsUpPhotoListView() {
   ANDROID.assertThat(subject.getPhotoRecyclerView()).isNotNull();
 }
 @Test
 public void testPhotoListManagerDidFinish_withPhotos_setsFlickrPhotoList() {
   subject.photoListManagerDidFinish(flickrPhotoList);
   List actualPhotoList = subject.getFlickrPhotoList();
   Assertions.assertThat(flickrPhotoList).isEqualTo(actualPhotoList);
 }
 @Test
 public void testPhotoListManagerDidFinish_withPhotos_DoesNotShowToast() {
   subject.photoListManagerDidFinish(flickrPhotoList);
   Toast actualToast = ShadowToast.getLatestToast();
   Assertions.assertThat(actualToast).isNull();
 }