diff options
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java | 101 |
1 files changed, 82 insertions, 19 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java index da9693ed3..12d3bca7d 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TableSorterTest.java @@ -13,21 +13,29 @@ package org.eclipse.mylyn.tasks.tests; import java.util.Calendar; +import java.util.Date; import junit.framework.TestCase; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; +import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer; import org.eclipse.mylyn.internal.tasks.core.DateRange; import org.eclipse.mylyn.internal.tasks.core.LocalTask; +import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil; import org.eclipse.mylyn.internal.tasks.core.TaskCategory; +import org.eclipse.mylyn.internal.tasks.core.TaskGroup; +import org.eclipse.mylyn.internal.tasks.core.UncategorizedTaskContainer; +import org.eclipse.mylyn.internal.tasks.core.UnmatchedTaskContainer; +import org.eclipse.mylyn.internal.tasks.core.UnsubmittedTaskContainer; import org.eclipse.mylyn.internal.tasks.core.WeekDateRange; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.internal.tasks.ui.util.TaskComparator; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListInterestSorter; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListTableSorter; import org.eclipse.mylyn.internal.tasks.ui.views.TaskListView; -import org.eclipse.mylyn.internal.tasks.ui.views.TaskListTableSorter.SortByIndex; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.tests.connector.MockTask; import org.eclipse.swt.widgets.Control; @@ -35,18 +43,54 @@ import org.eclipse.swt.widgets.Control; /** * @author Mik Kersten * @author George Lindholm + * @author Frank Becker */ public class TableSorterTest extends TestCase { public void testRootTaskSorting() { TaskListTableSorter sorter = new TaskListTableSorter(TaskListView.getFromActivePerspective(), - TaskListTableSorter.SortByIndex.SUMMARY); + TaskComparator.SortByIndex.SUMMARY); - ITask task = new LocalTask("1", ""); + AbstractTask task = new LocalTask("1", ""); + UncategorizedTaskContainer uncategorizedTaskContainer = new UncategorizedTaskContainer(); + UnsubmittedTaskContainer unsubmittedTaskContainer = new UnsubmittedTaskContainer("connectorKind", + "repositoryUrl"); TaskCategory category = new TaskCategory("cat"); + RepositoryQuery repositoryQuery = new RepositoryQuery("connectorKind", "queryName"); + TaskGroup taskGroup = new TaskGroup("parentHandle", "summary", "groupBy"); + UnmatchedTaskContainer unmatchedTaskContainer = new UnmatchedTaskContainer("connectorKind", "repositoryUrl"); + + checkToRootElements(sorter, uncategorizedTaskContainer, unsubmittedTaskContainer); + checkToRootElements(sorter, uncategorizedTaskContainer, category); + checkToRootElements(sorter, uncategorizedTaskContainer, repositoryQuery); + checkToRootElements(sorter, uncategorizedTaskContainer, taskGroup); + checkToRootElements(sorter, uncategorizedTaskContainer, unmatchedTaskContainer); + + checkToRootElements(sorter, unsubmittedTaskContainer, category); + checkToRootElements(sorter, unsubmittedTaskContainer, repositoryQuery); + checkToRootElements(sorter, unsubmittedTaskContainer, taskGroup); + checkToRootElements(sorter, unsubmittedTaskContainer, unmatchedTaskContainer); + + checkToRootElements(sorter, category, repositoryQuery); + checkToRootElements(sorter, category, taskGroup); + checkToRootElements(sorter, category, unmatchedTaskContainer); + + checkToRootElements(sorter, repositoryQuery, taskGroup); + checkToRootElements(sorter, repositoryQuery, unmatchedTaskContainer); + + checkToRootElements(sorter, taskGroup, unmatchedTaskContainer); + + checkToRootElements(sorter, task, uncategorizedTaskContainer); + checkToRootElements(sorter, task, unsubmittedTaskContainer); + checkToRootElements(sorter, task, category); + checkToRootElements(sorter, task, repositoryQuery); + checkToRootElements(sorter, task, taskGroup); + checkToRootElements(sorter, task, unmatchedTaskContainer); + } - assertEquals(-1, sorter.compare(null, task, category)); - assertEquals(1, sorter.compare(null, category, task)); + private void checkToRootElements(TaskListTableSorter sorter, AbstractTaskContainer e1, AbstractTaskContainer e2) { + assertEquals(-1, sorter.compare(null, e1, e2)); + assertEquals(1, sorter.compare(null, e2, e1)); } public class EmptyViewer extends Viewer { @@ -112,17 +156,25 @@ public class TableSorterTest extends TestCase { tasks[3] = new MockTask("local", "11", "d"); tasks[4] = new MockTask("local", "3", "c"); tasks[5] = new MockTask("local", "5", "a"); + Date start = new Date(); + tasks[5].setCreationDate(start); + tasks[4].setCreationDate(new Date(start.getTime() - 1)); + tasks[3].setCreationDate(new Date(start.getTime() - 2)); + tasks[2].setCreationDate(new Date(start.getTime() - 3)); + tasks[1].setCreationDate(new Date(start.getTime() - 4)); + tasks[0].setCreationDate(new Date(start.getTime() - 5)); TaskListTableSorter sorter = new TaskListTableSorter(TaskListView.getFromActivePerspective()); - sorter.setSortByIndex(SortByIndex.SUMMARY); + sorter.setSortByIndex(TaskComparator.SortByIndex.SUMMARY); + sorter.setSortByIndex2(TaskComparator.SortByIndex.DATE_CREATED); sorter.sort(new EmptyViewer(), tasks); - assertEquals("1", tasks[0].getTaskKey()); - assertEquals("3", tasks[1].getTaskKey()); - assertEquals("4", tasks[2].getTaskKey()); - assertEquals("5", tasks[3].getTaskKey()); - assertEquals("11", tasks[4].getTaskKey()); - assertEquals("a", tasks[4].getSummary()); + assertEquals("11", tasks[0].getTaskKey()); + assertEquals("a", tasks[0].getSummary()); + assertEquals("5", tasks[1].getTaskKey()); + assertEquals("1", tasks[2].getTaskKey()); + assertEquals("4", tasks[3].getTaskKey()); + assertEquals("3", tasks[4].getTaskKey()); assertEquals("11", tasks[5].getTaskKey()); assertEquals("d", tasks[5].getSummary()); } @@ -134,18 +186,25 @@ public class TableSorterTest extends TestCase { tasks[2] = new MockTask("local", "MYLN:11", "a"); tasks[3] = new MockTask("local", "MYLN:11", "b"); tasks[4] = new MockTask("local", "MYLN:5", "a"); + Date start = new Date(); + tasks[4].setCreationDate(start); + tasks[3].setCreationDate(new Date(start.getTime() - 1)); + tasks[2].setCreationDate(new Date(start.getTime() - 2)); + tasks[1].setCreationDate(new Date(start.getTime() - 3)); + tasks[0].setCreationDate(new Date(start.getTime() - 4)); TaskListTableSorter sorter = new TaskListTableSorter(TaskListView.getFromActivePerspective()); - sorter.setSortByIndex(SortByIndex.SUMMARY); + sorter.setSortByIndex(TaskComparator.SortByIndex.SUMMARY); + sorter.setSortByIndex2(TaskComparator.SortByIndex.DATE_CREATED); sorter.sort(new EmptyViewer(), tasks); - assertEquals("MYLN:1", tasks[0].getTaskKey()); - assertEquals("MYLN:4", tasks[1].getTaskKey()); - assertEquals("MYLN:5", tasks[2].getTaskKey()); + assertEquals("MYLN:11", tasks[0].getTaskKey()); + assertEquals("a", tasks[0].getSummary()); + assertEquals("MYLN:5", tasks[1].getTaskKey()); + assertEquals("MYLN:1", tasks[2].getTaskKey()); assertEquals("MYLN:11", tasks[3].getTaskKey()); - assertEquals("a", tasks[3].getSummary()); - assertEquals("MYLN:11", tasks[4].getTaskKey()); - assertEquals("b", tasks[4].getSummary()); + assertEquals("b", tasks[3].getSummary()); + assertEquals("MYLN:4", tasks[4].getTaskKey()); } public void testLocalTaskSort() { @@ -154,6 +213,10 @@ public class TableSorterTest extends TestCase { ITask task2 = new LocalTask("2", "task2"); ITask task3 = new LocalTask("3", "task3"); ITask[] tasks = { task1, task2, task3 }; + Date start = new Date(); + task3.setCreationDate(start); + task2.setCreationDate(new Date(start.getTime() - 1)); + task1.setCreationDate(new Date(start.getTime() - 2)); sorter.sort(new EmptyViewer(), tasks); } |