package com.azimo.tool.utils.converter;
import com.azimo.tool.firebase.model.ReportedReview;
import com.azimo.tool.publisher.model.AppReview;
import com.google.api.services.androidpublisher.model.Review;
import com.google.api.services.androidpublisher.model.Timestamp;
import com.google.api.services.androidpublisher.model.UserComment;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.mockito.Mockito.when;
/**
* Created by F1sherKK on 26/01/17.
*/
public class ReviewConverterTest {
ReviewConverter reviewConverter;
@Mock
AppReview appReview;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
reviewConverter = new ReviewConverter();
}
@Test
public void whenInsertedAppReview_ShouldReturnReportedReview() {
Review review = new Review();
AppReview appReview = new AppReview(review);
ReportedReview reportedReview = reviewConverter.reportedReviewFromAppReview(appReview);
assertThat(reportedReview != null, is(true));
}
@Test
public void whenInsertedAppReview_ShouldReturnReportedReviewWithCopiedTimestamp() {
long timeInSeconds = 123;
long expectedCreatedTimeInMillis = timeInSeconds * 1000;
Timestamp timeStamp = new Timestamp();
timeStamp.setNanos(0);
timeStamp.setSeconds(timeInSeconds);
UserComment userComment = new UserComment();
userComment.setLastModified(timeStamp);
when(appReview.getFirstUserComment()).thenReturn(userComment);
ReportedReview reportedReview = reviewConverter.reportedReviewFromAppReview(appReview);
assertThat(reportedReview.getReportedReviewTime() == expectedCreatedTimeInMillis, Matchers.is(true));
}
@Test
public void whenInsertedAppReview_ShouldReturnReportedReviewWithCopiedId() {
String expectedReviewId = "mockedReviewId";
when(appReview.getReviewId()).thenReturn(expectedReviewId);
ReportedReview reportedReview = reviewConverter.reportedReviewFromAppReview(appReview);
assertThat(reportedReview.getReportedReviewId().equals(expectedReviewId), Matchers.is(true));
}
}