blob: 915f9cfe39114e59868275265599f0bff79b0ab6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.tests;
import java.util.Set;
import org.eclipse.mylyn.internal.tasks.core.AbstractTask;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskCategory;
import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer;
import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector;
import org.eclipse.mylyn.internal.tasks.core.LocalTask;
import org.eclipse.mylyn.internal.tasks.core.TaskCategory;
import org.eclipse.mylyn.internal.tasks.core.TaskList;
import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer;
import org.eclipse.mylyn.tasks.core.ITask;
import org.eclipse.mylyn.tasks.core.ITaskContainer;
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector;
import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery;
import org.eclipse.mylyn.tasks.tests.connector.MockTask;
import junit.framework.TestCase;
/**
* @author Mik Kersten
* @author Rob Elves
* @author Shawn Minto
*/
public class TaskListTest extends TestCase {
private TaskList taskList;
@Override
protected void setUp() throws Exception {
taskList = new TaskList();
}
public void testGetCategories() {
taskList.addCategory(new TaskCategory("a"));
assertEquals(2, taskList.getCategories().size());
}
public void testLocalSubTaskAdd() {
LocalTask task = new LocalTask("1", "summary");
LocalTask subTask = new LocalTask("2", "subTask");
taskList.addTask(task);
taskList.addTask(subTask, task);
assertEquals(1, task.getChildren().size());
assertEquals(subTask, task.getChildren().iterator().next());
}
public void testLocalTaskAddToSelf() {
LocalTask task = new LocalTask("1", "summary");
taskList.addTask(task);
assertFalse(taskList.addTask(task, task));
assertEquals(0, task.getChildren().size());
assertEquals(1, task.getParentContainers().size());
}
public void testLocalSubTaskAddCycle() {
LocalTask task = new LocalTask("1", "summary");
LocalTask subTask = new LocalTask("2", "subTask");
taskList.addTask(task);
taskList.addTask(subTask, task);
taskList.addTask(task, subTask);
assertEquals(2, taskList.getAllTasks().size());
assertEquals(1, taskList.getCategories().size());
assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
assertEquals(1, task.getChildren().size());
assertEquals(0, subTask.getChildren().size());
assertEquals(subTask, task.getChildren().iterator().next());
}
public void testLocalSubTaskAddDeepCycle() {
LocalTask task = new LocalTask("1", "summary");
LocalTask subTask1 = new LocalTask("2", "subTask");
LocalTask subTask2 = new LocalTask("3", "subTask");
LocalTask subTask3 = new LocalTask("4", "subTask");
LocalTask subTask4 = new LocalTask("5", "subTask");
LocalTask subTask5 = new LocalTask("6", "subTask");
LocalTask subTask6 = new LocalTask("7", "subTask");
LocalTask subTask7 = new LocalTask("8", "subTask");
LocalTask subTask8 = new LocalTask("9", "subTask");
LocalTask subTask9 = new LocalTask("10", "subTask");
LocalTask subTask10 = new LocalTask("11", "subTask");
taskList.addTask(task);
taskList.addTask(subTask1, task);
taskList.addTask(subTask2, subTask1);
taskList.addTask(subTask3, subTask2);
taskList.addTask(subTask4, subTask3);
taskList.addTask(subTask5, subTask4);
taskList.addTask(subTask6, subTask5);
taskList.addTask(subTask7, subTask6);
taskList.addTask(subTask8, subTask7);
taskList.addTask(subTask9, subTask8);
taskList.addTask(subTask10, subTask9);
taskList.addTask(task, subTask10);
assertEquals(11, taskList.getAllTasks().size());
assertEquals(1, taskList.getCategories().size());
assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
assertEquals(1, task.getChildren().size());
assertEquals(subTask1, task.getChildren().iterator().next());
assertEquals(1, subTask1.getChildren().size());
assertEquals(subTask2, subTask1.getChildren().iterator().next());
assertEquals(1, subTask2.getChildren().size());
assertEquals(subTask3, subTask2.getChildren().iterator().next());
assertEquals(1, subTask3.getChildren().size());
assertEquals(subTask4, subTask3.getChildren().iterator().next());
assertEquals(1, subTask4.getChildren().size());
assertEquals(subTask5, subTask4.getChildren().iterator().next());
assertEquals(1, subTask5.getChildren().size());
assertEquals(subTask6, subTask5.getChildren().iterator().next());
assertEquals(1, subTask6.getChildren().size());
assertEquals(subTask7, subTask6.getChildren().iterator().next());
assertEquals(1, subTask7.getChildren().size());
assertEquals(subTask8, subTask7.getChildren().iterator().next());
assertEquals(1, subTask8.getChildren().size());
assertEquals(subTask9, subTask8.getChildren().iterator().next());
assertEquals(1, subTask9.getChildren().size());
assertEquals(subTask10, subTask9.getChildren().iterator().next());
assertEquals(0, subTask10.getChildren().size());
}
public void testLocalSubTaskAddMaxSubTaskDepthDeepCycle() {
LocalTask task = new LocalTask("1", "summary");
LocalTask subTask1 = new LocalTask("2", "subTask");
LocalTask subTask2 = new LocalTask("3", "subTask");
LocalTask subTask3 = new LocalTask("4", "subTask");
LocalTask subTask4 = new LocalTask("5", "subTask");
LocalTask subTask5 = new LocalTask("6", "subTask");
LocalTask subTask6 = new LocalTask("7", "subTask");
LocalTask subTask7 = new LocalTask("8", "subTask");
LocalTask subTask8 = new LocalTask("9", "subTask");
LocalTask subTask9 = new LocalTask("10", "subTask");
LocalTask subTask10 = new LocalTask("11", "subTask");
LocalTask subTask11 = new LocalTask("12", "subTask");
taskList.addTask(task);
taskList.addTask(subTask1, task);
taskList.addTask(subTask2, subTask1);
taskList.addTask(subTask3, subTask2);
taskList.addTask(subTask4, subTask3);
taskList.addTask(subTask5, subTask4);
taskList.addTask(subTask6, subTask5);
taskList.addTask(subTask7, subTask6);
taskList.addTask(subTask8, subTask7);
taskList.addTask(subTask9, subTask8);
taskList.addTask(subTask10, subTask9);
taskList.addTask(subTask11, subTask10);
taskList.addTask(task, subTask11);
assertEquals(12, taskList.getAllTasks().size());
assertEquals(1, taskList.getCategories().size());
assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
assertEquals(1, task.getChildren().size());
assertEquals(subTask1, task.getChildren().iterator().next());
assertEquals(1, subTask1.getChildren().size());
assertEquals(subTask2, subTask1.getChildren().iterator().next());
assertEquals(1, subTask2.getChildren().size());
assertEquals(subTask3, subTask2.getChildren().iterator().next());
assertEquals(1, subTask3.getChildren().size());
assertEquals(subTask4, subTask3.getChildren().iterator().next());
assertEquals(1, subTask4.getChildren().size());
assertEquals(subTask5, subTask4.getChildren().iterator().next());
assertEquals(1, subTask5.getChildren().size());
assertEquals(subTask6, subTask5.getChildren().iterator().next());
assertEquals(1, subTask6.getChildren().size());
assertEquals(subTask7, subTask6.getChildren().iterator().next());
assertEquals(1, subTask7.getChildren().size());
assertEquals(subTask8, subTask7.getChildren().iterator().next());
assertEquals(1, subTask8.getChildren().size());
assertEquals(subTask9, subTask8.getChildren().iterator().next());
assertEquals(1, subTask9.getChildren().size());
assertEquals(subTask10, subTask9.getChildren().iterator().next());
assertEquals(1, subTask10.getChildren().size());
assertEquals(subTask11, subTask10.getChildren().iterator().next());
assertEquals(0, subTask11.getChildren().size());
}
public void testLocalSubTaskAddReallyDeepCycle() {
LocalTask task = new LocalTask("1", "summary");
LocalTask subTask1 = new LocalTask("2", "subTask");
LocalTask subTask2 = new LocalTask("3", "subTask");
LocalTask subTask3 = new LocalTask("4", "subTask");
LocalTask subTask4 = new LocalTask("5", "subTask");
LocalTask subTask5 = new LocalTask("6", "subTask");
LocalTask subTask6 = new LocalTask("7", "subTask");
LocalTask subTask7 = new LocalTask("8", "subTask");
LocalTask subTask8 = new LocalTask("9", "subTask");
LocalTask subTask9 = new LocalTask("10", "subTask");
LocalTask subTask10 = new LocalTask("11", "subTask");
LocalTask subTask11 = new LocalTask("12", "subTask");
LocalTask subTask12 = new LocalTask("13", "subTask");
LocalTask subTask13 = new LocalTask("14", "subTask");
LocalTask subTask14 = new LocalTask("15", "subTask");
LocalTask subTask15 = new LocalTask("16", "subTask");
LocalTask subTask16 = new LocalTask("17", "subTask");
LocalTask subTask17 = new LocalTask("18", "subTask");
LocalTask subTask18 = new LocalTask("19", "subTask");
taskList.addTask(task);
taskList.addTask(subTask1, task);
taskList.addTask(subTask2, subTask1);
taskList.addTask(subTask3, subTask2);
taskList.addTask(subTask4, subTask3);
taskList.addTask(subTask5, subTask4);
taskList.addTask(subTask6, subTask5);
taskList.addTask(subTask7, subTask6);
taskList.addTask(subTask8, subTask7);
taskList.addTask(subTask9, subTask8);
taskList.addTask(subTask10, subTask9);
taskList.addTask(subTask11, subTask10);
taskList.addTask(subTask12, subTask11);
taskList.addTask(subTask13, subTask12);
taskList.addTask(subTask14, subTask13);
taskList.addTask(subTask15, subTask14);
taskList.addTask(subTask16, subTask15);
taskList.addTask(subTask17, subTask16);
taskList.addTask(subTask18, subTask17);
taskList.addTask(task, subTask18);
assertEquals(19, taskList.getAllTasks().size());
assertEquals(1, taskList.getCategories().size());
assertEquals(1, taskList.getCategories().iterator().next().getChildren().size());
assertEquals(1, task.getChildren().size());
assertEquals(subTask1, task.getChildren().iterator().next());
assertEquals(1, subTask1.getChildren().size());
assertEquals(subTask2, subTask1.getChildren().iterator().next());
assertEquals(1, subTask2.getChildren().size());
assertEquals(subTask3, subTask2.getChildren().iterator().next());
assertEquals(1, subTask3.getChildren().size());
assertEquals(subTask4, subTask3.getChildren().iterator().next());
assertEquals(1, subTask4.getChildren().size());
assertEquals(subTask5, subTask4.getChildren().iterator().next());
assertEquals(1, subTask5.getChildren().size());
assertEquals(subTask6, subTask5.getChildren().iterator().next());
assertEquals(1, subTask6.getChildren().size());
assertEquals(subTask7, subTask6.getChildren().iterator().next());
assertEquals(1, subTask7.getChildren().size());
assertEquals(subTask8, subTask7.getChildren().iterator().next());
assertEquals(1, subTask8.getChildren().size());
assertEquals(subTask9, subTask8.getChildren().iterator().next());
assertEquals(1, subTask9.getChildren().size());
assertEquals(subTask10, subTask9.getChildren().iterator().next());
assertEquals(1, subTask10.getChildren().size());
assertEquals(subTask11, subTask10.getChildren().iterator().next());
assertEquals(1, subTask11.getChildren().size());
assertEquals(subTask12, subTask11.getChildren().iterator().next());
assertEquals(1, subTask11.getChildren().size());
assertEquals(subTask12, subTask11.getChildren().iterator().next());
assertEquals(1, subTask12.getChildren().size());
assertEquals(subTask13, subTask12.getChildren().iterator().next());
assertEquals(1, subTask13.getChildren().size());
assertEquals(subTask14, subTask13.getChildren().iterator().next());
assertEquals(1, subTask14.getChildren().size());
assertEquals(subTask15, subTask14.getChildren().iterator().next());
assertEquals(1, subTask15.getChildren().size());
assertEquals(subTask16, subTask15.getChildren().iterator().next());
assertEquals(1, subTask16.getChildren().size());
assertEquals(subTask17, subTask16.getChildren().iterator().next());
assertEquals(1, subTask17.getChildren().size());
assertEquals(subTask18, subTask17.getChildren().iterator().next());
assertEquals(0, subTask18.getChildren().size());
}
public void testQueryAndCategoryNameClash() {
TaskCategory category = new TaskCategory("TestClash");
taskList.addCategory(category);
assertTrue(taskList.getCategories().contains(category));
assertEquals(2, taskList.getCategories().size());
MockRepositoryQuery query = new MockRepositoryQuery("TestClash");
taskList.addQuery(query);
assertTrue(taskList.getCategories().contains(category));
assertEquals(2, taskList.getCategories().size());
}
public void testMoveToRoot() {
AbstractTask task1 = new LocalTask("t1", "t1");
taskList.addTask(task1, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
assertEquals(taskList.getDefaultCategory(), TaskCategory.getParentTaskCategory(task1));
TaskCategory cat1 = new TaskCategory("c1");
taskList.addCategory(cat1);
taskList.addTask(task1, cat1);
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
assertEquals(cat1, TaskCategory.getParentTaskCategory(task1));
taskList.addTask(task1, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL));
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
assertEquals(0, cat1.getChildren().size());
assertEquals(taskList.getDefaultCategory(), TaskCategory.getParentTaskCategory(task1));
}
public void testDeleteCategory() {
assertEquals(1, taskList.getCategories().size());
TaskCategory category = new TaskCategory("cat");
taskList.addCategory(category);
assertEquals(2, taskList.getCategories().size());
taskList.deleteCategory(category);
assertEquals(1, taskList.getCategories().size());
}
public void testDeleteCategoryMovesTasksToRoot() {
AbstractTask task = new MockTask("delete");
TaskCategory category = new TaskCategory("cat");
taskList.addCategory(category);
taskList.addTask(task, category);
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
taskList.deleteCategory(category);
taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL);
}
@SuppressWarnings("deprecation")
public void testRenameCategory() {
TaskCategory category = new TaskCategory("handle", "cat");
taskList.addCategory(category);
assertEquals(2, taskList.getCategories().size());
taskList.renameContainer(category, "newDescription");
AbstractTaskCategory container = taskList.getContainerForHandle("handle");
assertNotNull(container);
assertEquals("newDescription", container.getSummary());
taskList.deleteCategory(container);
assertEquals(1, taskList.getCategories().size());
}
@SuppressWarnings("deprecation")
public void testDeleteCategoryAfterRename() {
String newDesc = "newDescription";
assertNotNull(taskList);
assertEquals(1, taskList.getCategories().size());
TaskCategory category = new TaskCategory("cat");
taskList.addCategory(category);
assertEquals(2, taskList.getCategories().size());
taskList.renameContainer(category, newDesc);
taskList.deleteCategory(category);
assertEquals(1, taskList.getCategories().size());
}
public void testCreateSameCategoryName() {
assertEquals(1, taskList.getCategories().size());
TaskCategory category = new TaskCategory("cat");
taskList.addCategory(category);
assertEquals(2, taskList.getCategories().size());
TaskCategory category2 = new TaskCategory("cat");
try {
taskList.addCategory(category2);
fail("expected IllegalArgumentException");
} catch (IllegalArgumentException e) {
}
assertEquals(2, taskList.getCategories().size());
ITaskContainer container = taskList.getContainerForHandle("cat");
assertEquals(container, category);
}
public void testDeleteRootTask() {
AbstractTask task = new LocalTask("1", "label");
taskList.addTask(task);
taskList.deleteTask(task);
assertEquals(0, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
}
public void testDeleteFromCategory() {
assertEquals(0, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
//assertEquals(0, taskList.getArchiveContainer().getChildren().size());
assertEquals(1, taskList.getCategories().size());
AbstractTask task = new LocalTask("1", "label");
TaskCategory category = new TaskCategory("handleAndDescription");
taskList.addTask(task);
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
taskList.addCategory(category);
taskList.addTask(task, category);
assertEquals(2, taskList.getCategories().size());
assertEquals(1, category.getChildren().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
assertEquals(1, taskList.getAllTasks().size());
taskList.deleteTask(task);
assertEquals(0, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
assertEquals(0, category.getChildren().size());
}
public void testDeleteRepositoryTask() {
String repositoryUrl = "http://somewhere.com";
MockTask task = new MockTask(repositoryUrl, "1");
taskList.addTask(task, taskList.getDefaultCategory());
MockRepositoryQuery query = new MockRepositoryQuery("query");
taskList.addQuery(query);
taskList.addTask(task, query);
assertEquals(1, taskList.getAllTasks().size());
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
taskList.deleteTask(task);
assertEquals(0, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
}
public void testRefactorSingleTask() {
AbstractTask task = new LocalTask("1", "label");
taskList.addTask(task);
taskList.refactorTaskId(task, "2");
assertEquals(1, taskList.getAllTasks().size());
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
assertEquals(new LocalTask("2", "label"), taskList.getAllTasks().iterator().next());
}
public void testRefactorSingleTaskInUnmatched() {
String repositoryUrl = "http://somewhere.com";
MockTask task = new MockTask(repositoryUrl, "1");
UnmatchedTaskContainer unmatched = new UnmatchedTaskContainer(task.getConnectorKind(), repositoryUrl);
taskList.addUnmatchedContainer(unmatched);
taskList.addTask(task);
taskList.refactorTaskId(task, "2");
assertEquals(1, taskList.getAllTasks().size());
assertEquals(1, unmatched.getChildren().size());
assertEquals(new MockTask(repositoryUrl, "2"), taskList.getAllTasks().iterator().next());
assertEquals(new MockTask(repositoryUrl, "2"), unmatched.getChildren().iterator().next());
}
public void testRefactorSingleTaskKeepsProperties() {
AbstractTask task = new LocalTask("1", "label");
taskList.addTask(task);
taskList.refactorTaskId(task, "2");
assertEquals(1, taskList.getAllTasks().size());
AbstractTask refactoredTask = taskList.getAllTasks().iterator().next();
assertEquals(new LocalTask("2", "label"), refactoredTask);
assertEquals(task.getRepositoryUrl(), refactoredTask.getRepositoryUrl());
assertEquals(task.getConnectorKind(), refactoredTask.getConnectorKind());
assertEquals(task.getAttributes(), refactoredTask.getAttributes());
assertEquals(task.getSummary(), refactoredTask.getSummary());
assertEquals(task.getPriority(), refactoredTask.getPriority());
}
public void testRefactorTaskInQuery() {
MockRepositoryQuery query = new MockRepositoryQuery("query");
taskList.addQuery(query);
MockTask task = new MockTask("1");
taskList.addTask(task, query);
taskList.refactorTaskId(task, "2");
assertEquals(1, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
assertEquals(1, query.getChildren().size());
assertEquals(new MockTask("2"), query.getChildren().iterator().next());
assertEquals(new MockTask("2"), taskList.getAllTasks().iterator().next());
}
public void testRefactorTaskInCategory() {
TaskCategory category = new TaskCategory("category");
taskList.addCategory(category);
MockTask task = new MockTask("1");
taskList.addTask(task, category);
taskList.refactorTaskId(task, "2");
assertEquals(1, taskList.getAllTasks().size());
assertEquals(0, taskList.getDefaultCategory().getChildren().size());
assertEquals(1, category.getChildren().size());
assertEquals(new MockTask("2"), category.getChildren().iterator().next());
assertEquals(new MockTask("2"), taskList.getAllTasks().iterator().next());
}
public void testRefactorTaskWithSubtask() {
AbstractTask task = new LocalTask("1", "label");
AbstractTask subtask = new LocalTask("2", "subtask");
taskList.addTask(task);
taskList.addTask(subtask, task);
taskList.refactorTaskId(task, "3");
assertEquals(2, taskList.getAllTasks().size());
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
assertEquals(1, subtask.getParentContainers().size());
AbstractTaskContainer refactoredTask = subtask.getParentContainers().iterator().next();
assertEquals(new LocalTask("3", "label"), refactoredTask);
assertTrue(taskList.getAllTasks().contains(refactoredTask));
assertEquals(1, refactoredTask.getChildren().size());
assertEquals(subtask, refactoredTask.getChildren().iterator().next());
}
public void testRefactorTaskWithParent() {
AbstractTask task = new LocalTask("1", "label");
AbstractTask parent = new LocalTask("2", "parent");
taskList.addTask(parent);
taskList.addTask(task, parent);
taskList.refactorTaskId(task, "3");
assertEquals(2, taskList.getAllTasks().size());
assertEquals(1, taskList.getDefaultCategory().getChildren().size());
assertEquals(1, parent.getChildren().size());
AbstractTask refactoredTask = (AbstractTask) parent.getChildren().iterator().next();
assertEquals(new LocalTask("3", "label"), refactoredTask);
assertTrue(taskList.getAllTasks().contains(refactoredTask));
assertEquals(1, refactoredTask.getParentContainers().size());
assertEquals(parent, refactoredTask.getParentContainers().iterator().next());
}
public void testgetQueriesAndHitsForHandle() {
MockTask hit1 = new MockTask("1");
MockTask hit2 = new MockTask("2");
MockTask hit3 = new MockTask("3");
MockTask hit1twin = new MockTask("1");
MockTask hit2twin = new MockTask("2");
MockTask hit3twin = new MockTask("3");
MockRepositoryQuery query1 = new MockRepositoryQuery("query1");
MockRepositoryQuery query2 = new MockRepositoryQuery("query2");
taskList.addQuery(query1);
taskList.addQuery(query2);
taskList.addTask(hit1, query1);
taskList.addTask(hit2, query1);
taskList.addTask(hit3, query1);
assertEquals(3, query1.getChildren().size());
taskList.addTask(hit1twin, query2);
taskList.addTask(hit2twin, query2);
taskList.addTask(hit3twin, query2);
assertEquals(3, query2.getChildren().size());
Set<AbstractTaskContainer> queriesReturned = hit1.getParentContainers();
assertNotNull(queriesReturned);
assertEquals(2, queriesReturned.size());
assertTrue(queriesReturned.contains(query1));
assertTrue(queriesReturned.contains(query2));
}
public void testUpdateQueryHits() {
MockTask hit1 = new MockTask("1");
MockTask hit2 = new MockTask("2");
MockTask hit3 = new MockTask("3");
MockTask hit1twin = new MockTask("1");
MockTask hit2twin = new MockTask("2");
MockTask hit3twin = new MockTask("3");
MockRepositoryQuery query1 = new MockRepositoryQuery("query1");
taskList.addQuery(query1);
taskList.addTask(hit1, query1);
taskList.addTask(hit2, query1);
taskList.addTask(hit3, query1);
taskList.addTask(hit1twin, query1);
taskList.addTask(hit2twin, query1);
taskList.addTask(hit3twin, query1);
assertEquals(3, query1.getChildren().size());
for (ITask child : query1.getChildren()) {
taskList.removeFromContainer(query1, child);
}
assertEquals(0, query1.getChildren().size());
taskList.addTask(hit1, query1);
taskList.addTask(hit2, query1);
assertEquals(2, query1.getChildren().size());
hit1.setNotified(true);
taskList.addTask(hit1twin, query1);
taskList.addTask(hit2twin, query1);
taskList.addTask(hit3twin, query1);
assertEquals(3, query1.getChildren().size());
assertTrue(query1.getChildren().contains(hit1twin));
assertTrue(query1.getChildren().contains(hit2twin));
assertTrue(query1.getChildren().contains(hit3twin));
for (ITask hit : query1.getChildren()) {
if (hit.equals(hit1twin)) {
assertTrue(((AbstractTask) hit).isNotified());
} else {
assertFalse(((AbstractTask) hit).isNotified());
}
}
}
public void testGetRepositoryTasks() {
String repositoryUrl = "https://bugs.eclipse.org/bugs";
String bugNumber = "106939";
MockTask task1 = new MockTask(repositoryUrl, bugNumber);
taskList.addTask(task1);
MockTask task2 = new MockTask("https://unresolved", bugNumber);
taskList.addTask(task2);
assertEquals(2, taskList.getAllTasks().size());
Set<ITask> tasksReturned = taskList.getTasks(repositoryUrl);
assertNotNull(tasksReturned);
assertEquals(1, tasksReturned.size());
assertTrue(tasksReturned.contains(task1));
}
}