/**
* 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.impl;
import java.util.ArrayList;
import java.util.List;
import junit.framework.Assert;
import org.junit.Test;
import com.ewcms.core.site.model.Site;
import com.ewcms.publication.task.Taskable;
import com.ewcms.publication.task.impl.process.TaskProcessable;
/**
* TaskBase单元测试
*
* @author wangwei
*/
public class TaskBaseTest {
@Test
public void testGetProgressCountIsZero(){
Taskable task = new TaskBaseImpl.Builder(new Site(),0,0,new ArrayList<Taskable>(0)).build();
Assert.assertEquals(-1, task.getProgress());
}
@Test
public void testGetProgress(){
List<Taskable> children = new ArrayList<Taskable>();
Taskable child =new TaskBaseImpl.Builder(new Site(),10,5,new ArrayList<Taskable>(0)).build();
children.add(child);
child =new TaskBaseImpl.Builder(new Site(),10,2,new ArrayList<Taskable>(0)).build();
children.add(child);
child =new TaskBaseImpl.Builder(new Site(),0,0,new ArrayList<Taskable>(0)).build();
children.add(child);
Taskable task = new TaskBaseImpl.Builder(new Site(),0,0,children).build();
Assert.assertEquals(35, task.getProgress());
}
@Test
public void testIsComplate(){
Taskable task = new TaskBaseImpl.Builder(new Site(),0,0,new ArrayList<Taskable>(0)).build();
Assert.assertTrue(task.isCompleted());
task = new TaskBaseImpl.Builder(new Site(),2,0,new ArrayList<Taskable>(0)).build();
Assert.assertFalse(task.isCompleted());
task = new TaskBaseImpl.Builder(new Site(),2,2,new ArrayList<Taskable>(0)).build();
Assert.assertTrue(task.isCompleted());
}
private static class TaskBaseImpl extends TaskBase{
private static class Builder extends BaseBuilder<Builder>{
private final int initCount;
private final int initComplate;
private final List<Taskable> initDependenceTasks;
public Builder(Site site,int count,int complate,List<Taskable> dependenceTasks) {
super(site);
this.initCount = count;
this.initComplate = complate;
this.initDependenceTasks = dependenceTasks;
}
@Override
protected String getDescription() {
return "";
}
@Override
protected List<Taskable> getDependenceTasks() {
return dependenceTasks;
}
@Override
protected List<TaskProcessable> getTaskProcesses() {
return new ArrayList<TaskProcessable>(0);
}
public Taskable build(){
this.count.set(initCount);
this.complete.set(initComplate);
this.dependenceTasks = initDependenceTasks;
return new TaskBaseImpl("1234",this);
}
}
public TaskBaseImpl(String id, Builder builder) {
super(id, builder);
}
}
}