package edu.asu.spring.quadriga.service.conceptcollection.mapper.impl;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import edu.asu.spring.quadriga.dao.conceptcollection.IConceptCollectionDAO;
import edu.asu.spring.quadriga.domain.conceptcollection.IConceptCollection;
import edu.asu.spring.quadriga.domain.impl.User;
import edu.asu.spring.quadriga.dto.ConceptCollectionDTO;
import edu.asu.spring.quadriga.dto.QuadrigaUserDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.service.conceptcollection.IConceptCollectionManager;
import edu.asu.spring.quadriga.service.user.mapper.IUserDeepMapper;
public class ConceptCollectionShallowMapperTest {
@Mock
private IConceptCollectionDAO mockeddbConnect = Mockito.mock(IConceptCollectionDAO.class);
@Mock
private IConceptCollectionManager mockedccManager = Mockito.mock(IConceptCollectionManager.class);
@Mock
private IUserDeepMapper mockedUserDeepMapper = Mockito.mock(IUserDeepMapper.class);
@InjectMocks
private ConceptCollectionShallowMapper conceptCollectionShallowMapperUnderTest;
private QuadrigaUserDTO userDTO;
private ConceptCollectionDTO dto;
@Before
public void setUp() throws QuadrigaStorageException {
MockitoAnnotations.initMocks(this);
userDTO = new QuadrigaUserDTO();
userDTO.setUsername("username");
dto = new ConceptCollectionDTO();
dto.setCollectionname("collectionname");
dto.setUpdatedby("updatedby");
dto.setOwner(userDTO);
User user = new User();
user.setUserName("username");
User user2 = new User();
user2.setUserName("username2");
Mockito.when(mockedUserDeepMapper.getUser("username")).thenReturn(user);
Mockito.when(mockedUserDeepMapper.getUser("username2")).thenReturn(user2);
}
@Test
public void getConceptCollectionListTest() throws QuadrigaStorageException {
QuadrigaUserDTO userDTO2 = new QuadrigaUserDTO();
userDTO2.setUsername("username2");
ConceptCollectionDTO dto2 = new ConceptCollectionDTO();
dto2.setCollectionname("collectionname2");
dto2.setOwner(userDTO2);
List<ConceptCollectionDTO> ccDTOList = new ArrayList<ConceptCollectionDTO>();
ccDTOList.add(dto);
ccDTOList.add(dto2);
Mockito.when(mockeddbConnect.getConceptsOwnedbyUser("username")).thenReturn(ccDTOList);
List<IConceptCollection> ccProxyList = conceptCollectionShallowMapperUnderTest
.getConceptCollectionList("username");
assertEquals(2, ccProxyList.size());
assertEquals("username", ccProxyList.get(0).getOwner().getUserName());
assertEquals("collectionname", ccProxyList.get(0).getConceptCollectionName());
assertEquals("username2", ccProxyList.get(1).getOwner().getUserName());
assertEquals("collectionname2", ccProxyList.get(1).getConceptCollectionName());
}
@Test
public void getConceptCollectionListOfCollaboratorTest() throws QuadrigaStorageException {
List<ConceptCollectionDTO> concolList = new ArrayList<ConceptCollectionDTO>();
concolList.add(dto);
Mockito.when(mockeddbConnect.getCollaboratedConceptsofUser("username")).thenReturn(concolList);
List<IConceptCollection> ccList = conceptCollectionShallowMapperUnderTest
.getConceptCollectionListOfCollaborator("username");
assertEquals("collectionname", ccList.get(0).getConceptCollectionName());
assertEquals("updatedby", ccList.get(0).getUpdatedBy());
}
}