package com.azimo.tool.task.uploader; import com.azimo.tool.firebase.collection.CreatedIssueCollection; import com.azimo.tool.firebase.model.CreatedIssue; import com.azimo.tool.jira.JiraIssueServiceManager; import com.azimo.tool.jira.model.Issue; import com.azimo.tool.jira.response.CreateNewIssueResponse; import com.azimo.tool.publisher.collection.ReviewCollection; import com.azimo.tool.publisher.model.AppReview; import com.azimo.tool.utils.converter.IssueConverter; 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 27/01/17. */ public class JiraUploaderTest { JiraUploader jiraUploader; @Mock IssueConverter issueConverter; @Mock JiraIssueServiceManager jiraIssueServiceManager; @Mock AppReview appReview1; @Mock AppReview appReview2; @Mock Issue issue1; @Mock Issue issue2; @Mock CreatedIssue createdIssue1; @Mock CreatedIssue createdIssue2; @Mock CreateNewIssueResponse createNewIssueResponse; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); jiraUploader = new JiraUploader(issueConverter, jiraIssueServiceManager); } @Test public void testWhenUploadingReviews_shouldReturnListOfCreatedIssues() { String reviewId1 = "id1"; String reviewId2 = "id2"; when(appReview1.getReviewId()).thenReturn(reviewId1); when(appReview2.getReviewId()).thenReturn(reviewId2); ReviewCollection reviewCollection = new ReviewCollection(); reviewCollection.add(appReview1); reviewCollection.add(appReview2); when(createdIssue1.getCreatedReviewId()).thenReturn(reviewId1); when(createdIssue2.getCreatedReviewId()).thenReturn(reviewId2); when(issueConverter.issueFromAppReview(appReview1)).thenReturn(issue1); when(issueConverter.issueFromAppReview(appReview2)).thenReturn(issue2); when(issueConverter.createdIssueFrom(appReview1)).thenReturn(createdIssue1); when(issueConverter.createdIssueFrom(appReview2)).thenReturn(createdIssue2); when(jiraIssueServiceManager.createJiraIssue(issue1)).thenReturn(createNewIssueResponse); CreatedIssueCollection createdIssueCollection = jiraUploader.upload(reviewCollection); assertThat(createdIssueCollection.size() == 2, is(true)); assertThat(createdIssueCollection.get(0).getCreatedReviewId().equals(reviewId1), is(true)); assertThat(createdIssueCollection.get(1).getCreatedReviewId().equals(reviewId2), is(true)); } }