package com.artemzin.qualitymatters.ui.adapters;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.artemzin.qualitymatters.R;
import com.artemzin.qualitymatters.api.entities.Item;
import com.artemzin.qualitymatters.models.QualityMattersImageLoader;
import org.junit.Before;
import org.junit.Test;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class ItemViewHolderTest {
private QualityMattersImageLoader imageLoader;
private View itemView;
private ItemViewHolder itemViewHolder;
private ImageView imageView;
private TextView titleTextView;
private TextView shortDescriptionTextView;
private Item item;
@Before
public void beforeEachTest() {
imageLoader = mock(QualityMattersImageLoader.class);
itemView = mock(View.class);
imageView = mock(ImageView.class);
titleTextView = mock(TextView.class);
shortDescriptionTextView = mock(TextView.class);
when(itemView.findViewById(R.id.list_item_image_view)).thenReturn(imageView);
when(itemView.findViewById(R.id.list_item_title_text_view)).thenReturn(titleTextView);
when(itemView.findViewById(R.id.list_item_short_description_text_view)).thenReturn(shortDescriptionTextView);
itemViewHolder = new ItemViewHolder(itemView, imageLoader);
item = Item.builder()
.id("1")
.imagePreviewUrl("https://testurl")
.title("Test title")
.shortDescription("Desc")
.build();
}
@Test
public void bind_shouldLoadPreviewImage() {
itemViewHolder.bind(item);
verify(imageLoader).downloadInto(item.imagePreviewUrl(), imageView);
}
@Test
public void bind_shouldSetTitle() {
itemViewHolder.bind(item);
verify(titleTextView).setText(item.title());
}
@Test
public void bind_shouldSetShortDescription() {
itemViewHolder.bind(item);
verify(shortDescriptionTextView).setText(item.shortDescription());
}
}