/**
* Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
* EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
* http://www.ewcms.com
*/
package com.ewcms.publication.task;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import com.ewcms.core.site.model.SiteServer.OutputType;
import com.ewcms.core.site.model.Site;
import com.ewcms.core.site.model.SiteServer;
/**
* MemoryTaskRegistry单元测试
*
* @author wangwei
*/
public class MemoryTaskRegistryTest {
@Test
public void testRegisterNewTask(){
Taskable task = mock(Taskable.class);
MemoryTaskRegistry register = new MemoryTaskRegistry();
Site site = new Site();
site.setId(1);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site,task);
Assert.assertTrue(register.containsTask(task));
}
@Test
public void testRemoveTaskNotExist() throws TaskException{
Integer siteId = 1;
String taskId = "0";
String username="test";
Taskable task = mock(Taskable.class);
when(task.getId()).thenReturn(taskId);
when(task.getUsername()).thenReturn(username);
MemoryTaskRegistry register = new MemoryTaskRegistry();
register.removeTask(siteId,taskId,username);
Assert.assertFalse(register.containsTask(task));
}
@Test
public void testRemoveTask() throws TaskException{
Integer siteId = 1;
String taskId = "0";
String username="test";
Taskable task = mock(Taskable.class);
when(task.getId()).thenReturn(taskId);
when(task.getUsername()).thenReturn(username);
MemoryTaskRegistry register = new MemoryTaskRegistry();
Site site = new Site();
site.setId(siteId);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site,task);
register.removeTask(siteId,taskId,username);
Assert.assertFalse( register.containsTask(task));
}
@Test
public void testDifferentUserRemoveTask(){
Integer siteId = 1;
String taskId = "0";
String username="test";
Taskable task = mock(Taskable.class);
when(task.getId()).thenReturn(taskId);
when(task.getUsername()).thenReturn(username);
MemoryTaskRegistry register = new MemoryTaskRegistry(0);
Site site = new Site();
site.setId(siteId);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site,task);
try{
register.removeTask(siteId,taskId,"test1");
Assert.assertFalse( register.containsTask(task));
Assert.fail();
}catch(TaskException e){
Assert.assertTrue(register.containsTask(task));
}
}
@Test
public void testManagerUserRemove(){
Integer siteId = 1;
String taskId = "0";
String username="test";
Taskable task = mock(Taskable.class);
when(task.getId()).thenReturn(taskId);
when(task.getUsername()).thenReturn(username);
MemoryTaskRegistry register = new MemoryTaskRegistry(0);
Site site = new Site();
site.setId(siteId);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site,task);
try{
register.removeTask(siteId,taskId,TaskRegistryable.MANAGER_USERNAME);
Assert.assertFalse( register.containsTask(task));
}catch(TaskException e){
Assert.fail();
}
}
@Test
public void testGetSiteTasks(){
Integer siteId = 1;
MemoryTaskRegistry register = new MemoryTaskRegistry(0);
Site site = new Site();
site.setId(siteId);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site, mock(Taskable.class));
register.registerNewTask(site, mock(Taskable.class));
List<Taskable> tasks = register.getSiteTasks(siteId);
Assert.assertEquals(2, tasks.size());
}
@Test
public void testCloseSite(){
Integer siteId = 1;
MemoryTaskRegistry register = new MemoryTaskRegistry(0);
Site site = new Site();
site.setId(siteId);
SiteServer server = new SiteServer();
server.setOutputType(OutputType.LOCAL);
site.setSiteServer(server);
register.registerNewTask(site, mock(Taskable.class));
register.registerNewTask(site, mock(Taskable.class));
register.closeSite(siteId);
Assert.assertFalse(register.containsSite(siteId));
}
}