package edu.asu.spring.quadriga.dspace.service.impl;
import java.util.Date;
import junit.framework.Assert;
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.workspace.IWorkspaceDAO;
import edu.asu.spring.quadriga.dto.WorkspaceDTO;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.service.workspace.impl.ArchiveWSManager;
public class ArchiveWSManagerTest {
@Mock
private IWorkspaceDAO workspaceDao;
@InjectMocks
private ArchiveWSManager managerToTest;
private WorkspaceDTO wsDto1;
private WorkspaceDTO wsDto2;
@Before
public void init() throws QuadrigaStorageException {
workspaceDao = Mockito.mock(IWorkspaceDAO.class);
MockitoAnnotations.initMocks(this);
wsDto1 = new WorkspaceDTO();
wsDto1.setCreatedby("user1");
wsDto1.setCreateddate(new Date());
wsDto1.setIsarchived(false);
wsDto1.setDescription("test 1");
wsDto1.setWorkspaceid("ws1");
wsDto1.setIsdeactivated(false);
wsDto2 = new WorkspaceDTO();
wsDto2.setCreatedby("user2");
wsDto2.setCreateddate(new Date());
wsDto2.setIsarchived(false);
wsDto2.setDescription("test 2");
wsDto2.setWorkspaceid("ws2");
wsDto2.setIsdeactivated(false);
Mockito.when(workspaceDao.getDTO("ws1")).thenReturn(wsDto1);
Mockito.when(workspaceDao.getDTO("ws2")).thenReturn(wsDto2);
}
@Test
public void testArchiveWsWithOneWs() {
managerToTest.archiveWorkspace("ws1", "user2");
Assert.assertTrue(wsDto1.getIsarchived());
Assert.assertEquals("user2", wsDto1.getUpdatedby());
}
@Test
public void testArchiveWSWithTwoWs() {
managerToTest.archiveWorkspace("ws1, ws2", "user2");
Assert.assertTrue(wsDto1.getIsarchived());
Assert.assertTrue(wsDto2.getIsarchived());
}
@Test
public void testUnarchiveWsWithOneWs() {
wsDto1.setIsarchived(true);
managerToTest.unArchiveWorkspace("ws1", "user2");
Assert.assertFalse(wsDto1.getIsarchived());
Assert.assertEquals("user2", wsDto1.getUpdatedby());
}
@Test
public void testUnarchiveWSWithTwoWs() {
wsDto1.setIsarchived(true);
wsDto2.setIsarchived(true);
managerToTest.unArchiveWorkspace("ws1, ws2", "user2");
Assert.assertFalse(wsDto1.getIsarchived());
Assert.assertFalse(wsDto2.getIsarchived());
}
@Test
public void testDeactivateOneWs() {
managerToTest.deactivateWorkspace("ws1", "user2");
Assert.assertTrue(wsDto1.getIsdeactivated());
Assert.assertEquals("user2", wsDto1.getUpdatedby());
}
@Test
public void testDeactivateTwoWs() {
managerToTest.deactivateWorkspace("ws1, ws2", "user2");
Assert.assertTrue(wsDto1.getIsdeactivated());
Assert.assertTrue(wsDto2.getIsdeactivated());
}
@Test
public void testActivateOneWs() throws QuadrigaStorageException {
wsDto1.setIsdeactivated(true);
managerToTest.activateWorkspace("ws1", "user2");
Assert.assertFalse(wsDto1.getIsdeactivated());
Assert.assertEquals("user2", wsDto1.getUpdatedby());
}
}