package net.sourceforge.ganttproject.test.task;
import java.text.DateFormat;
import java.util.Locale;
import biz.ganttproject.core.time.CalendarFactory;
import biz.ganttproject.core.time.GanttCalendar;
import junit.framework.TestCase;
import net.sourceforge.ganttproject.TestSetupHelper;
import net.sourceforge.ganttproject.task.Task;
import net.sourceforge.ganttproject.task.TaskManager;
import net.sourceforge.ganttproject.task.dependency.TaskDependency;
import net.sourceforge.ganttproject.task.dependency.TaskDependencyException;
/**
* Created by IntelliJ IDEA. User: bard
*/
public abstract class TaskTestCase extends TestCase {
static {
new CalendarFactory() {
{
setLocaleApi(new LocaleApi() {
public Locale getLocale() {
return Locale.US;
}
public DateFormat getShortDateFormat() {
return DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
}
});
}
};
}
private TaskManager myTaskManager;
protected TaskManager getTaskManager() {
return myTaskManager;
}
protected void setTaskManager(TaskManager taskManager) {
myTaskManager = taskManager;
}
@Override
protected void setUp() throws Exception {
super.setUp();
myTaskManager = newTaskManager();
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
myTaskManager = null;
}
protected TaskManager newTaskManager() {
return TestSetupHelper.newTaskManagerBuilder().build();
}
protected Task createTask() {
Task result = getTaskManager().createTask();
result.move(getTaskManager().getRootTask());
result.setName(String.valueOf(result.getTaskID()));
return result;
}
protected Task createTask(GanttCalendar start) {
return createTask(start, 1);
}
protected Task createTask(GanttCalendar start, int duration) {
Task result = createTask();
result.setStart(start);
result.setDuration(getTaskManager().createLength(duration));
return result;
}
protected TaskDependency createDependency(Task dependant, Task dependee) throws TaskDependencyException {
return getTaskManager().getDependencyCollection().createDependency(dependant, dependee);
}
}