package edu.asu.spring.quadriga.service.conceptcollection; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; 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.IConceptCollectionCollaboratorDAO; import edu.asu.spring.quadriga.dao.conceptcollection.IConceptCollectionDAO; import edu.asu.spring.quadriga.dto.ConceptCollectionCollaboratorDTO; import edu.asu.spring.quadriga.dto.ConceptCollectionCollaboratorDTOPK; 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.impl.CCCollaboratorManager; import edu.asu.spring.quadriga.web.login.RoleNames; public class CCCollaboratorManagerTest { @Mock private IConceptCollectionCollaboratorDAO mockedCcCollabDao; @Mock private IConceptCollectionDAO mockedCcDao; @InjectMocks private CCCollaboratorManager ccCollabManagerUnderTest; private ConceptCollectionDTO ccDto; @Before public void setUp() throws Exception { mockedCcCollabDao = Mockito.mock(IConceptCollectionCollaboratorDAO.class); mockedCcDao = Mockito.mock(IConceptCollectionDAO.class); MockitoAnnotations.initMocks(this); ccDto = new ConceptCollectionDTO(); ccDto.setConceptCollectionid("CC1"); ccDto.setConceptCollectionCollaboratorDTOList(new ArrayList<ConceptCollectionCollaboratorDTO>()); QuadrigaUserDTO userDto = new QuadrigaUserDTO(); userDto.setUsername("User1"); Mockito.when(mockedCcDao.getDTO("CC1")).thenReturn(ccDto); Mockito.when(mockedCcDao.getUserDTO("User1")).thenReturn(userDto); } @Test public void testCreateNewCollaboratorDTO() { ConceptCollectionCollaboratorDTO dto = ccCollabManagerUnderTest.createNewCollaboratorDTO(); assertNotNull(dto); } @Test public void testCreateNewCollaboratorDTOPK() { ConceptCollectionCollaboratorDTOPK dtopk = ccCollabManagerUnderTest.createNewCollaboratorDTOPK("Id", "user", "role"); assertNotNull(dtopk); assertEquals("Id", dtopk.getConceptcollectionid()); assertEquals("user", dtopk.getCollaboratoruser()); assertEquals("role", dtopk.getCollaboratorrole()); } @Test public void testAddingFirstCollaborator() throws QuadrigaStorageException { ccCollabManagerUnderTest.updateCollaborators("CC1", "User1", RoleNames.ROLE_CC_COLLABORATOR_ADMIN, "admin"); List<ConceptCollectionCollaboratorDTO> collaborators = ccDto.getCollaboratorList(); assertEquals(1, collaborators.size()); ConceptCollectionCollaboratorDTO collaborator = collaborators.get(0); assertEquals("User1", collaborator.getCollaboratorDTOPK().getCollaboratoruser()); assertEquals(RoleNames.ROLE_CC_COLLABORATOR_ADMIN, collaborator.getCollaboratorDTOPK().getCollaboratorrole()); assertEquals("admin", collaborator.getCreatedby()); } @Test public void testAddingRoleToCollaborator() throws QuadrigaStorageException { ConceptCollectionCollaboratorDTO collabDto = new ConceptCollectionCollaboratorDTO(); collabDto.setCollaboratorDTOPK(new ConceptCollectionCollaboratorDTOPK("CC1", "User1", RoleNames.ROLE_CC_COLLABORATOR_ADMIN)); ccCollabManagerUnderTest.updateCollaborators("CC1", "User1", RoleNames.ROLE_CC_COLLABORATOR_READ_WRITE + "," + RoleNames.ROLE_CC_COLLABORATOR_ADMIN, "admin"); List<ConceptCollectionCollaboratorDTO> collaborators = ccDto.getCollaboratorList(); assertEquals(2, collaborators.size()); List<String> roles = new ArrayList<String>(); for (ConceptCollectionCollaboratorDTO collab : collaborators) { assertEquals("User1", collab.getCollaboratorDTOPK().getCollaboratoruser()); assertEquals("admin", collab.getCreatedby()); roles.add(collab.getCollaboratorDTOPK().getCollaboratorrole()); } assertTrue(roles.contains(RoleNames.ROLE_CC_COLLABORATOR_READ_WRITE)); assertTrue(roles.contains(RoleNames.ROLE_CC_COLLABORATOR_ADMIN)); } }