package com.azimo.tool.firebase.mapper;
import com.azimo.tool.firebase.collection.ReportedReviewsCollection;
import com.azimo.tool.firebase.model.ReportedReview;
import com.azimo.tool.firebase.model.ReportedReviewsList;
import com.azimo.tool.firebase.response.GetReportedReviewsResponse;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.mockito.Mockito.when;
/**
* Created by F1sherKK on 18/01/17.
*/
public class ReportedReviewMapperTest {
ReportedReviewMapper reporetedReviewMapper;
@Mock
ReportedReview reportedReview1;
@Mock
ReportedReview reportedReview2;
@Mock
ReportedReview reportedReview3;
@Mock
GetReportedReviewsResponse response;
@Mock
ReportedReviewsCollection reportedReviewsCollection;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
reporetedReviewMapper = new ReportedReviewMapper();
}
@Test
public void whenInsertedGetReportedReviewsResponse_ShouldReturnReportedReviewsCollection() {
when(response.getReportedReview()).thenReturn(new ArrayList<>());
ReportedReviewsCollection reportedReviewsCollection =
reporetedReviewMapper.getReportedReviewsResponseToCollection(response);
assertThat(reportedReviewsCollection != null, is(true));
}
@Test
public void whenInsertedGetReportedReviewsResponse_ShouldFillReportedReviewsCollectionWithReviews() {
List<ReportedReview> reportedReviewsList = Arrays.asList(reportedReview1, reportedReview2, reportedReview3);
when(response.getReportedReview()).thenReturn(reportedReviewsList);
ReportedReviewsCollection reportedReviewsCollection =
reporetedReviewMapper.getReportedReviewsResponseToCollection(response);
assertThat(reportedReviewsCollection.size() == reportedReviewsList.size(), is(true));
}
@Test
public void whenInsertedReportedReviewsCollection_ShouldReturnReportedReviewsList() {
when(reportedReviewsCollection.get(0)).thenReturn(reportedReview1);
when(reportedReviewsCollection.get(1)).thenReturn(reportedReview2);
when(reportedReviewsCollection.get(2)).thenReturn(reportedReview3);
ReportedReviewsList reportedReviewsList =
reporetedReviewMapper.reportedReviewsCollectionToList(reportedReviewsCollection);
assertThat(reportedReviewsList.size() == reportedReviewsCollection.size(), is(true));
}
}