blob: bac580211d20ad3bc673b8149fc1eec899239f9f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2010 Tasktop Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.sandbox.tests;
import java.lang.reflect.InvocationTargetException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import junit.framework.TestCase;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.mylyn.bugzilla.tests.support.BugzillaFixture;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaCorePlugin;
import org.eclipse.mylyn.internal.sandbox.ui.planner.CompletedTaskCollector;
import org.eclipse.mylyn.internal.sandbox.ui.planner.TaskReportGenerator;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
import org.eclipse.mylyn.internal.tasks.core.TaskList;
import org.eclipse.mylyn.internal.tasks.core.TaskTask;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.tests.TaskTestUtil;
/**
* @author Mik Kersten
* @author Rob Elves
*/
public class TaskReportGeneratorTest extends TestCase {
private TaskList taskList;
@Override
protected void setUp() throws Exception {
taskList = TasksUiPlugin.getTaskList();
TaskTestUtil.resetTaskList();
}
@Override
protected void tearDown() throws Exception {
TaskTestUtil.resetTaskList();
}
public void testCompletedTasksRetrieved() throws InvocationTargetException, InterruptedException {
AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
taskList.addTask(task1);
CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0), new Date());
TaskReportGenerator generator = new TaskReportGenerator(taskList);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(0, generator.getAllCollectedTasks().size());
task1.setCompleted(true);
collector = new CompletedTaskCollector(new Date(0), new Date());
generator = new TaskReportGenerator(taskList);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(1, generator.getAllCollectedTasks().size());
assertEquals(task1, generator.getAllCollectedTasks().get(0));
}
public void testCompletedTasksDateBoundsRetrieved() throws InvocationTargetException, InterruptedException {
AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
taskList.addTask(task1);
task1.setCompleted(true);
Thread.sleep(1000);
long now = new Date().getTime();
CompletedTaskCollector collector = new CompletedTaskCollector(new Date(now), new Date());
TaskReportGenerator generator = new TaskReportGenerator(taskList);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(0, generator.getAllCollectedTasks().size());
generator = new TaskReportGenerator(taskList);
collector = new CompletedTaskCollector(new Date(now - 8000), new Date());
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(1, generator.getAllCollectedTasks().size());
assertEquals(task1, generator.getAllCollectedTasks().get(0));
}
public void testCompletedBugzillaTasksRetrieved() throws InvocationTargetException, InterruptedException {
TaskRepository repository = new TaskRepository(BugzillaCorePlugin.CONNECTOR_KIND, BugzillaFixture.current()
.getRepositoryUrl());
TasksUiPlugin.getRepositoryManager().addRepository(repository);
TaskTask task1 = new TaskTask(repository.getUrl(), "1", "bugzillatask 1");
taskList.addTask(task1);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 5);
CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0), cal.getTime());
TaskReportGenerator generator = new TaskReportGenerator(taskList);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(0, generator.getAllCollectedTasks().size());
task1.setCompleted(true);
generator.run(new NullProgressMonitor());
assertEquals(1, generator.getAllCollectedTasks().size());
assertEquals(task1, generator.getAllCollectedTasks().get(0));
TasksUiPlugin.getRepositoryManager().removeRepository(repository,
TasksUiPlugin.getDefault().getRepositoriesFilePath());
}
public void testCompletedTasksInCategoryRetrieved() throws InvocationTargetException, InterruptedException {
AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1");
taskList.addTask(task1);
task1.setCompleted(true);
TaskCategory cat1 = new TaskCategory("TaskReportGeneratorTest Category");
taskList.addCategory(cat1);
Set<AbstractTaskContainer> catagories = new HashSet<AbstractTaskContainer>();
catagories.add(cat1);
CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0), new Date());
TaskReportGenerator generator = new TaskReportGenerator(taskList, catagories);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(0, generator.getAllCollectedTasks().size());
taskList.addTask(task1, cat1);
generator.run(new NullProgressMonitor());
assertEquals(1, generator.getAllCollectedTasks().size());
assertEquals(task1, generator.getAllCollectedTasks().get(0));
}
public void testCompletedBugzillaTasksInCategoryRetrieved() throws InvocationTargetException, InterruptedException {
TaskTask task1 = new TaskTask("repo", "1", "task 1");
taskList.addTask(task1);
task1.setCompleted(true);
TaskCategory cat1 = new TaskCategory("TaskReportGeneratorTest Category");
taskList.addCategory(cat1);
Set<AbstractTaskContainer> catagories = new HashSet<AbstractTaskContainer>();
catagories.add(cat1);
CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0), new Date());
TaskReportGenerator generator = new TaskReportGenerator(taskList, catagories);
generator.addCollector(collector);
generator.run(new NullProgressMonitor());
assertEquals(0, generator.getAllCollectedTasks().size());
taskList.addTask(task1, cat1);
generator.run(new NullProgressMonitor());
assertEquals(1, generator.getAllCollectedTasks().size());
assertEquals(task1, generator.getAllCollectedTasks().get(0));
}
public void testCompletedBugzillaTasksInQueryRetrieved() throws InvocationTargetException, InterruptedException {
TaskTask task1 = new TaskTask("repo", "1", "task 1");
taskList.addTask(task1);
task1.setCompleted(false);
fail("test not implemented, comment out lines below this statement");
// BugzillaRepositoryQuery bugQuery = new BugzillaRepositoryQuery("repositoryUrl", "queryUrl",
// "TaskReportGeneratorBugzillaQueryCategory");
//
// taskList.addQuery(bugQuery);
//
// Set<AbstractTaskContainer> catagories = new HashSet<AbstractTaskContainer>();
// catagories.add(bugQuery);
// Calendar future = Calendar.getInstance();
// future.add(Calendar.MINUTE, 1);
// CompletedTaskCollector collector = new CompletedTaskCollector(new Date(0), future.getTime());
// TaskReportGenerator generator = new TaskReportGenerator(taskList, catagories);
// generator.addCollector(collector);
// generator.run(new NullProgressMonitor());
// assertEquals(0, generator.getAllCollectedTasks().size());
//
// taskList.addTask(task1, bugQuery);
//
// generator.run(new NullProgressMonitor());
// assertEquals(0, generator.getAllCollectedTasks().size());
//
// task1.setCompleted(true);
//
// generator.run(new NullProgressMonitor());
// assertEquals(1, generator.getAllCollectedTasks().size());
// assertEquals(task1, generator.getAllCollectedTasks().get(0));
}
}