package com.artemzin.qualitymatters.models;
import android.widget.ImageView;
import com.artemzin.qualitymatters.QualityMattersRobolectricUnitTestRunner;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.RequestCreator;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(QualityMattersRobolectricUnitTestRunner.class)
public class PicassoImageLoaderTest {
private static final String FAKE_URL = "http://fakeUrl.com";
private ImageView imageView;
private Picasso picasso;
private PicassoImageLoader picassoBitmapClient;
private RequestCreator loadRequestCreator;
private RequestCreator fitRequestCreator;
private RequestCreator centerCropRequestCreator;
@Before
public void setUp() {
picasso = mock(Picasso.class);
imageView = mock(ImageView.class);
loadRequestCreator = mock(RequestCreator.class);
fitRequestCreator = mock(RequestCreator.class);
centerCropRequestCreator = mock(RequestCreator.class);
when(picasso.load(FAKE_URL)).thenReturn(loadRequestCreator);
when(loadRequestCreator.fit()).thenReturn(fitRequestCreator);
when(fitRequestCreator.centerCrop()).thenReturn(centerCropRequestCreator);
picassoBitmapClient = new PicassoImageLoader(picasso);
}
@Test
public void downloadInto_shouldLoadThenFitThenCenterCrop() {
picassoBitmapClient.downloadInto(FAKE_URL, imageView);
verify(picasso).load(FAKE_URL);
verify(loadRequestCreator).fit();
verify(fitRequestCreator).centerCrop();
verify(centerCropRequestCreator).into(imageView);
}
}