package com.azimo.tool.firebase.mapper;
import com.azimo.tool.firebase.collection.CreatedIssueCollection;
import com.azimo.tool.firebase.model.CreatedIssue;
import com.azimo.tool.firebase.model.CreatedIssuesList;
import com.azimo.tool.firebase.response.GetCreatedIssuesResponse;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.Mockito;
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 CreatedIssueMapperTest {
CreatedIssueMapper createdIssueMapper;
@Mock
CreatedIssue createdIssue1;
@Mock
CreatedIssue createdIssue2;
@Mock
CreatedIssue createdIssue3;
@Mock
GetCreatedIssuesResponse response;
@Mock
CreatedIssueCollection createdIssueCollection;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
createdIssueMapper = new CreatedIssueMapper();
}
@Test
public void whenInsertedGetCreatedIssuesResponse_ShouldReturnCreatedIssueCollection() {
when(response.getCreatedIssues()).thenReturn(new ArrayList<>());
CreatedIssueCollection createdIssueCollection =
createdIssueMapper.getCreatedIssuesResponseToCollection(response);
assertThat(createdIssueCollection != null, is(true));
}
@Test
public void whenInsertedGetCreatedIssuesResponse_ShouldFillCreatedIssueCollectionWithIssues() {
List<CreatedIssue> createdIssuesList = Arrays.asList(createdIssue1, createdIssue2, createdIssue3);
when(response.getCreatedIssues()).thenReturn(createdIssuesList);
CreatedIssueCollection createdIssueCollection =
createdIssueMapper.getCreatedIssuesResponseToCollection(response);
assertThat(createdIssueCollection.size() == createdIssuesList.size(), is(true));
}
@Test
public void whenInsertedCreatedIssueCollection_ShouldReturnCreatedIssueList() {
when(createdIssueCollection.get(0)).thenReturn(createdIssue1);
when(createdIssueCollection.get(1)).thenReturn(createdIssue2);
when(createdIssueCollection.get(2)).thenReturn(createdIssue3);
CreatedIssuesList createdIssuesList =
createdIssueMapper.createdIssuesCollectionToList(createdIssueCollection);
assertThat(createdIssuesList.size() == createdIssueCollection.size(), is(true));
}
}