diff options
14 files changed, 1186 insertions, 1480 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java index 570280fe9..6974664eb 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/AllTasksTests.java @@ -22,8 +22,6 @@ public class AllTasksTests { public static Test suite() { TestSuite suite = new TestSuite("Test for org.eclipse.mylyn.tasks.tests"); - - // $JUnit-BEGIN$ suite.addTestSuite(LinkProviderTest.class); suite.addTestSuite(TaskActivationActionTest.class); suite.addTestSuite(TaskListPresentationTest.class); @@ -35,9 +33,8 @@ public class AllTasksTests { suite.addTestSuite(ProjectRepositoryAssociationTest.class); suite.addTestSuite(TaskList06DataMigrationTest.class); suite.addTestSuite(TaskPlanningEditorTest.class); - suite.addTestSuite(TaskListManagerTest.class); suite.addTestSuite(TaskListExternalizationTest.class); - suite.addTestSuite(RepositoryTaskSynchronizationTest.class); + suite.addTestSuite(TaskDataManagerTest.class); suite.addTestSuite(TaskRepositoryManagerTest.class); suite.addTestSuite(TaskRepositoriesExternalizerTest.class); suite.addTestSuite(TaskListContentProviderTest.class); @@ -51,13 +48,13 @@ public class AllTasksTests { suite.addTestSuite(TaskDataExportTest.class); // XXX: Put back //suite.addTestSuite(TaskDataImportTest.class); + //suite.addTestSuite(QueryExportImportTest.class); suite.addTestSuite(ScheduledPresentationTest.class); suite.addTestSuite(TaskActivityTimingTest.class); suite.addTestSuite(TaskAttachmentTest.class); suite.addTestSuite(RepositorySettingsPageTest.class); suite.addTestSuite(CommentQuoterTest.class); suite.addTestSuite(TaskDataStoreTest.class); - suite.addTestSuite(QueryExportImportTest.class); suite.addTestSuite(TaskExportImportTest.class); suite.addTestSuite(PersonProposalProviderTest.class); suite.addTestSuite(TaskRepositoryLocationTest.class); @@ -66,18 +63,19 @@ public class AllTasksTests { suite.addTestSuite(OrphanedTasksTest.class); suite.addTestSuite(TaskWorkingSetTest.class); suite.addTestSuite(TaskActivationHistoryTest.class); - // $JUnit-END$ + suite.addTestSuite(TaskActivityManagerTest.class); + suite.addTestSuite(TaskRepositoryFilterTests.class); + suite.addTestSuite(TaskDiffUtilTest.class); + suite.addTestSuite(RefactorRepositoryUrlOperationTest.class); // suite.addTestSuite(BackgroundSaveTest.class); // suite.addTestSuite(RetrieveTitleFromUrlTest.class); + // web connector tests suite.addTestSuite(org.eclipse.mylyn.tasks.tests.web.NamedPatternTest.class); suite.addTestSuite(org.eclipse.mylyn.tasks.tests.web.HtmlDecodeEntityTest.class); suite.addTestSuite(org.eclipse.mylyn.tasks.tests.web.WebRepositoryTest.class); - suite.addTestSuite(TaskActivityListenerTest.class); - suite.addTestSuite(TaskRepositoryFilterTests.class); - suite.addTestSuite(TaskDiffUtilTest.class); return suite; } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java index 092e694b6..f55d1694a 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2008 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 @@ -37,6 +37,7 @@ import org.eclipse.mylyn.tasks.tests.connector.MockTaskListFactory; /** * @author Jevgeni Holodkov */ +// FIXME speed up test public class QueryExportImportTest extends TestCase { private File dest; diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java new file mode 100644 index 000000000..29b09111a --- /dev/null +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RefactorRepositoryUrlOperationTest.java @@ -0,0 +1,175 @@ +/******************************************************************************* + * Copyright (c) 2004, 2008 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.tasks.tests; + +import java.io.File; +import java.io.IOException; +import java.util.Calendar; + +import junit.framework.TestCase; + +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.mylyn.internal.context.core.ContextCorePlugin; +import org.eclipse.mylyn.internal.context.core.InteractionContext; +import org.eclipse.mylyn.internal.context.core.InteractionContextManager; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; +import org.eclipse.mylyn.internal.tasks.core.RepositoryQuery; +import org.eclipse.mylyn.internal.tasks.core.TaskList; +import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation; +import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.monitor.core.InteractionEvent; +import org.eclipse.mylyn.tasks.core.IRepositoryQuery; +import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper; +import org.eclipse.mylyn.tasks.core.data.TaskData; +import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery; +import org.eclipse.mylyn.tasks.tests.connector.MockTask; +import org.eclipse.mylyn.tasks.ui.TasksUi; + +/** + * @author Robert Elves + * @author Steffen Pingel + */ +public class RefactorRepositoryUrlOperationTest extends TestCase { + + private TaskList taskList; + + @Override + protected void setUp() throws Exception { + super.setUp(); + taskList = TasksUiPlugin.getTaskList(); + TaskTestUtil.resetTaskList(); + } + + private void runRepositoryUrlOperation(String oldUrl, String newUrl) { + try { + new RefactorRepositoryUrlOperation(oldUrl, newUrl).run(new NullProgressMonitor()); + } catch (Exception e) { + fail(); + } + } + + public void testMigrateTaskContextFiles() throws IOException { + File fileA = ContextCorePlugin.getContextStore().getFileForContext("http://a-1"); + fileA.createNewFile(); + fileA.deleteOnExit(); + assertTrue(fileA.exists()); + runRepositoryUrlOperation("http://a", "http://b"); + File fileB = ContextCorePlugin.getContextStore().getFileForContext("http://b-1"); + assertTrue(fileB.exists()); + assertFalse(fileA.exists()); + } + + public void testMigrateQueryUrlHandles() { + RepositoryQuery query = new MockRepositoryQuery("mquery"); + query.setRepositoryUrl("http://foo.bar"); + query.setUrl("http://foo.bar/b"); + taskList.addQuery(query); + assertTrue(taskList.getRepositoryQueries("http://foo.bar").size() > 0); + runRepositoryUrlOperation("http://foo.bar", "http://bar.baz"); + assertTrue(taskList.getRepositoryQueries("http://foo.bar").size() == 0); + assertTrue(taskList.getRepositoryQueries("http://bar.baz").size() > 0); + IRepositoryQuery changedQuery = taskList.getRepositoryQueries("http://bar.baz").iterator().next(); + assertEquals("http://bar.baz/b", changedQuery.getUrl()); + } + + public void testMigrateQueryHandles() { + RepositoryQuery query = new MockRepositoryQuery("mquery"); + query.setRepositoryUrl("http://a"); + taskList.addQuery(query); + runRepositoryUrlOperation("http://a", "http://b"); + assertFalse(taskList.getRepositoryQueries("http://b").isEmpty()); + assertTrue(taskList.getRepositoryQueries("http://a").isEmpty()); + } + + public void testMigrateTaskHandles() throws Exception { + AbstractTask task = new MockTask("http://a", "123"); + AbstractTask task2 = new MockTask("http://other", "other"); + taskList.addTask(task); + taskList.addTask(task2); + + TaskRepository repository = new TaskRepository("kind", "http://a"); + TaskRepository repository2 = new TaskRepository("kind", "http://other"); + + TaskData taskData = new TaskData(new TaskAttributeMapper(repository), task.getConnectorKind(), + task.getRepositoryUrl(), task.getTaskId()); + TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task, taskData, true); + + TaskData taskData2 = new TaskData(new TaskAttributeMapper(repository2), task2.getConnectorKind(), + task2.getRepositoryUrl(), task2.getTaskId()); + taskData2.getRoot().createAttribute("comment").setValue("TEST"); + TasksUiPlugin.getTaskDataManager().putUpdatedTaskData(task2, taskData2, true); + + runRepositoryUrlOperation("http://a", "http://b"); + assertNull(taskList.getTask("http://a-123")); + assertNotNull(taskList.getTask("http://b-123")); + assertNotNull(TasksUi.getTaskDataManager().getTaskData(task)); + TaskData otherData = TasksUi.getTaskDataManager().getTaskData(task2); + assertNotNull(otherData); + assertEquals("TEST", otherData.getRoot().getAttribute("comment").getValue()); + } + + public void testMigrateTaskHandlesWithExplicitSet() { + AbstractTask task = new MockTask("http://a", "123"); + task.setUrl("http://a/task/123"); + taskList.addTask(task); + runRepositoryUrlOperation("http://a", "http://b"); + assertNull(taskList.getTask("http://a-123")); + assertNotNull(taskList.getTask("http://b-123")); + assertEquals("http://b/task/123", task.getUrl()); + } + + public void testRefactorMetaContextHandles() { + String firstUrl = "http://repository1.com/bugs"; + String secondUrl = "http://repository2.com/bugs"; + AbstractTask task1 = new MockTask(firstUrl, "1"); + AbstractTask task2 = new MockTask(firstUrl, "2"); + taskList.addTask(task1); + taskList.addTask(task2); + Calendar startDate = Calendar.getInstance(); + Calendar endDate = Calendar.getInstance(); + endDate.add(Calendar.MINUTE, 5); + + Calendar startDate2 = Calendar.getInstance(); + startDate2.add(Calendar.MINUTE, 15); + Calendar endDate2 = Calendar.getInstance(); + endDate2.add(Calendar.MINUTE, 25); + + ContextCorePlugin.getContextManager().resetActivityMetaContext(); + InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext(); + assertEquals(0, metaContext.getInteractionHistory().size()); + + ContextCorePlugin.getContextManager().processActivityMetaContextEvent( + new InteractionEvent(InteractionEvent.Kind.ATTENTION, + InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(), "origin", + null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate.getTime(), + endDate.getTime())); + + ContextCorePlugin.getContextManager().processActivityMetaContextEvent( + new InteractionEvent(InteractionEvent.Kind.ATTENTION, + InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(), "origin", + null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate2.getTime(), + endDate2.getTime())); + + assertEquals(2, metaContext.getInteractionHistory().size()); + assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1)); + assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task2)); + runRepositoryUrlOperation(firstUrl, secondUrl); + metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext(); + assertEquals(2, metaContext.getInteractionHistory().size()); + assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(new MockTask(secondUrl, "1"))); + assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime( + new MockTask(secondUrl, "2"))); + assertEquals(secondUrl + "-1", metaContext.getInteractionHistory().get(0).getStructureHandle()); + } + +} diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityListenerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityListenerTest.java deleted file mode 100644 index e665caa02..000000000 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityListenerTest.java +++ /dev/null @@ -1,106 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2008 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.tasks.tests; - -import junit.framework.TestCase; - -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; -import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.ITaskActivityManager; -import org.eclipse.mylyn.tasks.core.TaskActivationAdapter; -import org.eclipse.mylyn.tasks.tests.connector.MockTask; -import org.eclipse.mylyn.tasks.ui.TasksUi; - -/** - * @author Shawn Minto - */ -public class TaskActivityListenerTest extends TestCase { - - private class MockTaskActivationListener extends TaskActivationAdapter { - - private boolean hasActivated = false; - - private boolean hasPreActivated = false; - - private boolean hasDeactivated = false; - - private boolean hasPreDeactivated = false; - - public void reset() { - hasActivated = false; - hasPreActivated = false; - - hasDeactivated = false; - hasPreDeactivated = false; - - } - - @Override - public void preTaskActivated(ITask task) { - assertFalse(hasActivated); - hasPreActivated = true; - } - - @Override - public void preTaskDeactivated(ITask task) { - assertFalse(hasDeactivated); - hasPreDeactivated = true; - } - - @Override - public void taskActivated(ITask task) { - assertTrue(hasPreActivated); - hasActivated = true; - } - - @Override - public void taskDeactivated(ITask task) { - assertTrue(hasPreDeactivated); - hasDeactivated = true; - } - - } - - private ITaskActivityManager taskActivityManager; - - @Override - protected void setUp() throws Exception { - taskActivityManager = TasksUi.getTaskActivityManager(); - taskActivityManager.deactivateActiveTask(); - } - - public void testTaskActivation() { - MockTask task = new MockTask("test:activation"); - MockTaskActivationListener listener = new MockTaskActivationListener(); - try { - taskActivityManager.addActivationListener(listener); - try { - taskActivityManager.activateTask(task); - assertTrue(listener.hasPreActivated); - assertTrue(listener.hasActivated); - assertFalse(listener.hasPreDeactivated); - assertFalse(listener.hasDeactivated); - - listener.reset(); - } finally { - taskActivityManager.deactivateTask(task); - } - assertFalse(listener.hasPreActivated); - assertFalse(listener.hasActivated); - assertTrue(listener.hasPreDeactivated); - assertTrue(listener.hasDeactivated); - } finally { - TasksUiPlugin.getTaskActivityManager().removeActivationListener(listener); - } - } - -}
\ No newline at end of file diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java new file mode 100644 index 000000000..1fc5e8b62 --- /dev/null +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskActivityManagerTest.java @@ -0,0 +1,197 @@ +/******************************************************************************* + * Copyright (c) 2004, 2008 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.tasks.tests; + +import java.util.Calendar; +import java.util.Date; + +import junit.framework.TestCase; + +import org.eclipse.mylyn.commons.net.AuthenticationCredentials; +import org.eclipse.mylyn.commons.net.AuthenticationType; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; +import org.eclipse.mylyn.internal.tasks.core.LocalTask; +import org.eclipse.mylyn.internal.tasks.core.TaskActivityManager; +import org.eclipse.mylyn.internal.tasks.core.TaskActivityUtil; +import org.eclipse.mylyn.internal.tasks.core.TaskList; +import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.tasks.core.ITask; +import org.eclipse.mylyn.tasks.core.TaskActivationAdapter; +import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; +import org.eclipse.mylyn.tasks.tests.connector.MockTask; + +/** + * @author Shawn Minto + * @author Robert Elves + */ +public class TaskActivityManagerTest extends TestCase { + + private class MockTaskActivationListener extends TaskActivationAdapter { + + private boolean hasActivated = false; + + private boolean hasPreActivated = false; + + private boolean hasDeactivated = false; + + private boolean hasPreDeactivated = false; + + public void reset() { + hasActivated = false; + hasPreActivated = false; + + hasDeactivated = false; + hasPreDeactivated = false; + + } + + @Override + public void preTaskActivated(ITask task) { + assertFalse(hasActivated); + hasPreActivated = true; + } + + @Override + public void preTaskDeactivated(ITask task) { + assertFalse(hasDeactivated); + hasPreDeactivated = true; + } + + @Override + public void taskActivated(ITask task) { + assertTrue(hasPreActivated); + hasActivated = true; + } + + @Override + public void taskDeactivated(ITask task) { + assertTrue(hasPreDeactivated); + hasDeactivated = true; + } + + } + + private TaskActivityManager taskActivityManager; + + private TaskList taskList; + + private TaskRepository repository; + + @Override + protected void setUp() throws Exception { + taskActivityManager = TasksUiPlugin.getTaskActivityManager(); + taskActivityManager.deactivateActiveTask(); + taskList = TasksUiPlugin.getTaskList(); + + TaskTestUtil.resetTaskList(); + + repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL); + TasksUiPlugin.getRepositoryManager().addRepository(repository); + } + + public void testTaskActivation() { + MockTask task = new MockTask("test:activation"); + MockTaskActivationListener listener = new MockTaskActivationListener(); + try { + taskActivityManager.addActivationListener(listener); + try { + taskActivityManager.activateTask(task); + assertTrue(listener.hasPreActivated); + assertTrue(listener.hasActivated); + assertFalse(listener.hasPreDeactivated); + assertFalse(listener.hasDeactivated); + + listener.reset(); + } finally { + taskActivityManager.deactivateTask(task); + } + assertFalse(listener.hasPreActivated); + assertFalse(listener.hasActivated); + assertTrue(listener.hasPreDeactivated); + assertTrue(listener.hasDeactivated); + } finally { + taskActivityManager.removeActivationListener(listener); + } + } + + public void testIsActiveToday() { + AbstractTask task = new LocalTask("1", "task-1"); + assertFalse(taskActivityManager.isScheduledForToday(task)); + + task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday()); + assertTrue(taskActivityManager.isScheduledForToday(task)); + + task.setReminded(true); + assertTrue(taskActivityManager.isScheduledForToday(task)); + task.setReminded(true); + +// Calendar inAnHour = Calendar.getInstance(); +// inAnHour.set(Calendar.HOUR_OF_DAY, inAnHour.get(Calendar.HOUR_OF_DAY) + 1); +// inAnHour.getTime(); +// task.setScheduledForDate(inAnHour.getTime()); +// Calendar tomorrow = Calendar.getInstance(); +// TaskActivityUtil.snapToNextDay(tomorrow); +// assertEquals(-1, inAnHour.compareTo(tomorrow)); +// assertTrue(taskActivityManager.isScheduledForToday(task)); + } + + public void testScheduledForToday() { + AbstractTask task = new LocalTask("1", "task-1"); + task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday()); + assertTrue(taskActivityManager.isScheduledForToday(task)); + task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday().next()); + assertFalse(taskActivityManager.isScheduledForToday(task)); + } + + public void testSchedulePastEndOfMonth() { + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); + calendar.set(Calendar.DAY_OF_MONTH, 30); + TaskActivityUtil.snapForwardNumDays(calendar, 1); + assertEquals("Should be October", Calendar.OCTOBER, calendar.get(Calendar.MONTH)); + } + + public void testIsCompletedToday() { + ITask task = new LocalTask("1", "task 1"); + task.setCompletionDate(new Date()); + assertTrue(taskActivityManager.isCompletedToday(task)); + + MockTask mockTask = new MockTask("1"); + mockTask.setOwner("unknown"); + taskList.addTask(mockTask); + mockTask.setCompletionDate(new Date()); + assertFalse("completed: " + mockTask.getCompletionDate(), taskActivityManager.isCompletedToday(mockTask)); + + mockTask = new MockTask("2"); + taskList.addTask(mockTask); + mockTask.setCompletionDate(new Date()); + mockTask.setOwner("testUser"); + repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("testUser", ""), false); + assertTrue(taskActivityManager.isCompletedToday(mockTask)); + } + + public void testAllTasksDeactivation() { + AbstractTask task1 = new LocalTask("task1", "description1"); + AbstractTask task2 = new LocalTask("task2", "description2"); + taskList.addTask(task1); + taskList.addTask(task2); + assertNull(taskActivityManager.getActiveTask()); + + taskActivityManager.activateTask(task2); + assertEquals(task2, taskActivityManager.getActiveTask()); + + taskActivityManager.deactivateActiveTask(); + assertNull(taskActivityManager.getActiveTask()); + } + +}
\ No newline at end of file diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java index a5081b58b..b0e134b39 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskAttachmentTest.java @@ -62,7 +62,7 @@ public class TaskAttachmentTest extends TestCase { attachmentHandler = new MockAttachmentHandler(); connector = new MockRepositoryConnector(); - connector.setAttachmentHandler(attachmentHandler); + connector.setTaskAttachmentHandler(attachmentHandler); manager.addRepositoryConnector(connector); TaskData taskData = new TaskData(new TaskAttributeMapper(repository), MockRepositoryConnector.REPOSITORY_KIND, diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java index 96a249a4e..72c427c95 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/RepositoryTaskSynchronizationTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2008 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 @@ -12,10 +12,8 @@ package org.eclipse.mylyn.tasks.tests; import java.util.Collections; -import java.util.Date; import java.util.HashSet; import java.util.Set; -import java.util.Stack; import junit.framework.TestCase; @@ -29,14 +27,14 @@ import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.core.ITask.SynchronizationState; -import org.eclipse.mylyn.tasks.tests.connector.MockAttributeFactory; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; import org.eclipse.mylyn.tasks.tests.connector.MockTask; /** * @author Rob Elves + * @author Steffen Pingel */ -public class RepositoryTaskSynchronizationTest extends TestCase { +public class TaskDataManagerTest extends TestCase { private static final String DATE_STAMP_3 = "2006-06-21 15:29:42"; @@ -54,61 +52,61 @@ public class RepositoryTaskSynchronizationTest extends TestCase { private RepositoryTaskData newData; - public void testHasIncoming() { - MockTask task = new MockTask(MOCCK_ID); - RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), - MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); - task.setLastReadTimeStamp("never"); - - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, "2006-06-21 15:29:39"); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - task.setLastReadTimeStamp("2006-06-21 15:29:39"); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - task.setLastReadTimeStamp(DATE_STAMP_1); - assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - } - - public void testHasIncomingDateComparison() { - final Stack<Date> dates = new Stack<Date>(); - MockTask task = new MockTask(MOCCK_ID); - RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory() { - private static final long serialVersionUID = 1L; - - @Override - public Date getDateForAttributeType(String attributeKey, String dateString) { - return dates.pop(); - } - }, connector.getConnectorKind(), MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); - task.setLastReadTimeStamp("never"); - - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - - // strings and dates mismatch - dates.push(new Date(1)); - dates.push(new Date(2)); - taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, "2006-06-21 15:29:39"); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - - dates.push(null); - dates.push(new Date(2)); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - - dates.push(new Date()); - dates.push(null); - assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - - // strings mismatch but dates match - dates.push(new Date(1)); - dates.push(new Date(1)); - assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - - // strings match, dates should not be checked - task.setLastReadTimeStamp("2006-06-21 15:29:39"); - assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); - } +// public void testHasIncoming() { +// MockTask task = new MockTask(MOCCK_ID); +// RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), +// MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); +// task.setLastReadTimeStamp("never"); +// +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, "2006-06-21 15:29:39"); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// task.setLastReadTimeStamp("2006-06-21 15:29:39"); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// task.setLastReadTimeStamp(DATE_STAMP_1); +// assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// } + +// public void testHasIncomingDateComparison() { +// final Stack<Date> dates = new Stack<Date>(); +// MockTask task = new MockTask(MOCCK_ID); +// RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory() { +// private static final long serialVersionUID = 1L; +// +// @Override +// public Date getDateForAttributeType(String attributeKey, String dateString) { +// return dates.pop(); +// } +// }, connector.getConnectorKind(), MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); +// task.setLastReadTimeStamp("never"); +// +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// +// // strings and dates mismatch +// dates.push(new Date(1)); +// dates.push(new Date(2)); +// taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, "2006-06-21 15:29:39"); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// +// dates.push(null); +// dates.push(new Date(2)); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// +// dates.push(new Date()); +// dates.push(null); +// assertTrue(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// +// // strings mismatch but dates match +// dates.push(new Date(1)); +// dates.push(new Date(1)); +// assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// +// // strings match, dates should not be checked +// task.setLastReadTimeStamp("2006-06-21 15:29:39"); +// assertFalse(TasksUiPlugin.getTaskDataManager().checkHasIncoming(task, taskData)); +// } public void testIncomingToIncoming() { /* @@ -118,38 +116,38 @@ public class RepositoryTaskSynchronizationTest extends TestCase { * to 2nd occurrence of new incoming data */ - // Test unforced - AbstractTask task = primeTaskAndRepository(SynchronizationState.INCOMING, SynchronizationState.INCOMING); - RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), - task.getTaskId()); - assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); - assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); - assertEquals(DATE_STAMP_2, newData.getLastModified()); - TasksUiPlugin.getTaskDataManager().saveIncoming(task, newData, false); - assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); - assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); - // TasksUiPlugin.getSynchronizationManager().setTaskRead(task, true); - // assertEquals(DATE_STAMP_2, task.getLastSyncDateStamp()); - // and again... - - RepositoryTaskData taskData3 = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), - MockRepositoryConnector.REPOSITORY_URL, "1"); - taskData3.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_3); - TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false); - // last modified stamp not updated until user synchronizes (newdata == - // olddata) - assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); - assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); - taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId()); - assertEquals(DATE_STAMP_3, taskData.getLastModified()); - - // Should keep INCOMING state state since new data has same date samp - // and sych is not forced. - TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false); - assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); - assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); - taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId()); - assertEquals(DATE_STAMP_3, taskData.getLastModified()); +// // Test unforced +// AbstractTask task = primeTaskAndRepository(SynchronizationState.INCOMING, SynchronizationState.INCOMING); +// RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), +// task.getTaskId()); +// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); +// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); +// assertEquals(DATE_STAMP_2, newData.getLastModified()); +// TasksUiPlugin.getTaskDataManager().saveIncoming(task, newData, false); +// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); +// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); +// // TasksUiPlugin.getSynchronizationManager().setTaskRead(task, true); +// // assertEquals(DATE_STAMP_2, task.getLastSyncDateStamp()); +// // and again... +// +// RepositoryTaskData taskData3 = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), +// MockRepositoryConnector.REPOSITORY_URL, "1"); +// taskData3.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_3); +// TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false); +// // last modified stamp not updated until user synchronizes (newdata == +// // olddata) +// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); +// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); +// taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId()); +// assertEquals(DATE_STAMP_3, taskData.getLastModified()); +// +// // Should keep INCOMING state state since new data has same date samp +// // and sych is not forced. +// TasksUiPlugin.getTaskDataManager().saveIncoming(task, taskData3, false); +// assertEquals(SynchronizationState.INCOMING, task.getSynchronizationState()); +// assertEquals(DATE_STAMP_1, task.getLastReadTimeStamp()); +// taskData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), task.getTaskId()); +// assertEquals(DATE_STAMP_3, taskData.getLastModified()); } // Invalid state change. Test that this can't happen. @@ -333,28 +331,28 @@ public class RepositoryTaskSynchronizationTest extends TestCase { } public void testClearOutgoing() { - AbstractTask task = primeTaskAndRepository(SynchronizationState.SYNCHRONIZED, SynchronizationState.SYNCHRONIZED); - RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(), - MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); - TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData1); - taskData1 = TasksUiPlugin.getTaskDataStorageManager() - .getEditableCopy(task.getRepositoryUrl(), task.getTaskId()); - - taskData1.setNewComment("Testing"); - Set<RepositoryTaskAttribute> edits = new HashSet<RepositoryTaskAttribute>(); - edits.add(taskData1.getAttribute(RepositoryTaskAttribute.COMMENT_NEW)); - TasksUiPlugin.getTaskDataStorageManager().saveEdits(task.getRepositoryUrl(), task.getTaskId(), edits); - - RepositoryTaskData editedData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy( - task.getRepositoryUrl(), task.getTaskId()); - assertEquals("Testing", editedData.getNewComment()); - - TasksUiPlugin.getTaskDataManager().discardOutgoing(task); - - assertTrue(task.getSynchronizationState().equals(SynchronizationState.SYNCHRONIZED)); - RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy( - task.getRepositoryUrl(), task.getTaskId()); - assertEquals("", taskData.getNewComment()); +// AbstractTask task = primeTaskAndRepository(SynchronizationState.SYNCHRONIZED, SynchronizationState.SYNCHRONIZED); +// RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(), +// MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); +// TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData1); +// taskData1 = TasksUiPlugin.getTaskDataStorageManager() +// .getEditableCopy(task.getRepositoryUrl(), task.getTaskId()); +// +// taskData1.setNewComment("Testing"); +// Set<RepositoryTaskAttribute> edits = new HashSet<RepositoryTaskAttribute>(); +// edits.add(taskData1.getAttribute(RepositoryTaskAttribute.COMMENT_NEW)); +// TasksUiPlugin.getTaskDataStorageManager().saveEdits(task.getRepositoryUrl(), task.getTaskId(), edits); +// +// RepositoryTaskData editedData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy( +// task.getRepositoryUrl(), task.getTaskId()); +// assertEquals("Testing", editedData.getNewComment()); +// +// TasksUiPlugin.getTaskDataManager().discardOutgoing(task); +// +// assertTrue(task.getSynchronizationState().equals(SynchronizationState.SYNCHRONIZED)); +// RepositoryTaskData taskData = TasksUiPlugin.getTaskDataStorageManager().getEditableCopy( +// task.getRepositoryUrl(), task.getTaskId()); +// assertEquals("", taskData.getNewComment()); } @@ -422,57 +420,142 @@ public class RepositoryTaskSynchronizationTest extends TestCase { private class TestRepositoryConnector extends MockRepositoryConnector { - @Override - public AbstractTaskDataHandler getLegacyTaskDataHandler() { - return handler; - } - - // @Override - // protected void removeOfflineTaskData(RepositoryTaskData bug) { - // // ignore - // } - // - // @Override - // public void saveOffline(RepositoryTaskData taskData) { - // // ignore - // } - - // @Override - // protected RepositoryTaskData - // loadOfflineTaskData(AbstractTask repositoryTask) { - // return repositoryTask.getTaskData(); - // } - } private AbstractTask primeTaskAndRepository(SynchronizationState localState, SynchronizationState remoteState) { RepositoryTaskData taskData = null; AbstractTask task = new MockTask(MOCCK_ID); - taskData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), - MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); - taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); - task.setLastReadTimeStamp(DATE_STAMP_1); - task.setSynchronizationState(localState); - TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData); - newData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), - MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); - - switch (remoteState) { - case CONFLICT: - case INCOMING: - newData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_2); - break; - case SYNCHRONIZED: - newData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); - break; - default: - fail("Remote repository can only be INCOMING or SYNCHRONIZED wrt the local task."); - - } +// taskData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), +// MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); +// taskData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); +// task.setLastReadTimeStamp(DATE_STAMP_1); +// task.setSynchronizationState(localState); +// TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData); +// newData = new RepositoryTaskData(new MockAttributeFactory(), connector.getConnectorKind(), +// MockRepositoryConnector.REPOSITORY_URL, MOCCK_ID); +// +// switch (remoteState) { +// case CONFLICT: +// case INCOMING: +// newData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_2); +// break; +// case SYNCHRONIZED: +// newData.setAttributeValue(RepositoryTaskAttribute.DATE_MODIFIED, DATE_STAMP_1); +// break; +// default: +// fail("Remote repository can only be INCOMING or SYNCHRONIZED wrt the local task."); +// +// } return task; + } + public void testMarkTaskRead() { + // TODO reimplement +// String repositoryUrl = "http://mylyn.eclipse.org/bugs222"; +// MockTask task1 = new MockTask(repositoryUrl, "1"); +// MockTask task2 = new MockTask(repositoryUrl, "2"); +// task1.setSynchronizationState(SynchronizationState.INCOMING); +// task2.setSynchronizationState(SynchronizationState.INCOMING); +// List<ITaskElement> elements = new ArrayList<ITaskElement>(); +// elements.add(task1); +// elements.add(task2); +// MarkTaskReadAction readAction = new MarkTaskReadAction(elements); +// readAction.run(); +// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState()); +// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState()); +// +// taskList.reset(); +// MockTask hit1 = new MockTask("1"); +// MockTask hit2 = new MockTask("2"); +// MockRepositoryQuery query = new MockRepositoryQuery("summary"); +// taskList.addQuery(query); +// taskList.addTask(hit1, query); +// taskList.addTask(hit2, query); +// +// elements.clear(); +// elements.add(query); +// readAction = new MarkTaskReadAction(elements); +// readAction.run(); +// assertEquals(2, query.getChildren().size()); +// for (ITaskElement element : query.getChildren()) { +// if (element instanceof MockTask) { +// MockTask mockTask = (MockTask) element; +// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState()); +// } +// } + + } + + public void testMarkUnRead() { + // TODO reimplement +// String repositoryUrl = "http://mylyn.eclipse.org/bugs222"; +// MockTask task1 = new MockTask(repositoryUrl, "1"); +// MockTask task2 = new MockTask(repositoryUrl, "2"); +// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState()); +// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState()); +// List<ITaskElement> elements = new ArrayList<ITaskElement>(); +// elements.add(task1); +// elements.add(task2); +// MarkTaskUnreadAction unreadAction = new MarkTaskUnreadAction(elements); +// unreadAction.run(); +// assertEquals(SynchronizationState.INCOMING, task1.getSynchronizationState()); +// assertEquals(SynchronizationState.INCOMING, task2.getSynchronizationState()); +// +// taskList.reset(); +// MockTask hit1 = new MockTask("1"); +// MockTask hit2 = new MockTask("2"); +// MockRepositoryQuery query = new MockRepositoryQuery("summary"); +// taskList.addQuery(query); +// taskList.addTask(hit1, query); +// taskList.addTask(hit2, query); +// +// elements.clear(); +// elements.add(query); +// MarkTaskReadAction readAction = new MarkTaskReadAction(elements); +// readAction.run(); +// assertEquals(2, query.getChildren().size()); +// for (ITaskElement element : query.getChildren()) { +// if (element instanceof MockTask) { +// MockTask mockTask = (MockTask) element; +// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState()); +// } else { +// fail(); +// } +// } +// +// unreadAction = new MarkTaskUnreadAction(elements); +// unreadAction.run(); +// assertEquals(2, query.getChildren().size()); +// for (ITaskElement element : query.getChildren()) { +// if (element instanceof MockTask) { +// MockTask mockTask = (MockTask) element; +// assertEquals(SynchronizationState.INCOMING, mockTask.getSynchronizationState()); +// } else { +// fail(); +// } +// } } +// public void testQueryHitsNotDropped() { +// MockTask task1 = new MockTask("1"); +// MockTask task2 = new MockTask("2"); +// task1.setLastReadTimeStamp("today"); +// task2.setLastReadTimeStamp("today"); +// MockRepositoryQuery query = new MockRepositoryQuery("summary"); +// taskList.addQuery(query); +// taskList.addTask(task1, query); +// taskList.addTask(task2, query); +// //assertEquals(0, taskList.getArchiveContainer().getChildren().size()); +// assertEquals(2, query.getChildren().size()); +// TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository( +// MockRepositoryConnector.REPOSITORY_URL); +// Set<RepositoryQuery> queries = new HashSet<RepositoryQuery>(); +// queries.add(query); +// TasksUiInternal.synchronizeQueries(new MockRepositoryConnector(), repository, queries, null, true); +// //assertEquals(2, taskList.getArchiveContainer().getChildren().size()); +// assertEquals(0, query.getChildren().size()); +// } + } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java index ddbbdea7a..01ab8a688 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListExternalizationTest.java @@ -11,16 +11,29 @@ package org.eclipse.mylyn.tasks.tests; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + import junit.framework.TestCase; -import org.eclipse.core.runtime.CoreException; 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.ui.ITasksUiPreferenceConstants; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; +import org.eclipse.mylyn.tasks.core.ITask; +import org.eclipse.mylyn.tasks.core.ITaskContainer; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; +import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery; +import org.eclipse.mylyn.tasks.tests.connector.MockTask; /** * @author Steffen Pingel @@ -31,7 +44,7 @@ public class TaskListExternalizationTest extends TestCase { private TaskRepository repository; - private void reloadTaskList() throws CoreException { + private void reloadTaskList() throws Exception { taskList.notifyElementsChanged(null); TasksUiPlugin.getExternalizationManager().requestSave(); TasksUiPlugin.getDefault().reloadDataDirectory(); @@ -55,7 +68,7 @@ public class TaskListExternalizationTest extends TestCase { TaskTestUtil.resetTaskList(); } - public void testTaskAttributes() throws CoreException { + public void testTaskAttributes() throws Exception { AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); task1.setAttribute("key", "value"); assertEquals(1, task1.getAttributes().size()); @@ -68,7 +81,7 @@ public class TaskListExternalizationTest extends TestCase { assertEquals("value", task1.getAttribute("key")); } - public void testTaskAttributeDelete() throws CoreException { + public void testTaskAttributeDelete() throws Exception { AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); task1.setAttribute("key", "value"); task1.setAttribute("key", null); @@ -83,4 +96,255 @@ public class TaskListExternalizationTest extends TestCase { assertEquals(null, task1.getAttribute("key")); } + public void testUncategorizedTasksNotLost() throws Exception { + MockRepositoryQuery query = new MockRepositoryQuery("Test"); + taskList.addQuery(query); + MockTask task = new MockTask("1"); + taskList.addTask(task, query); + taskList.addTask(task, taskList.getDefaultCategory()); + assertTrue(query.contains(task.getHandleIdentifier())); + assertTrue(taskList.getDefaultCategory().contains(task.getHandleIdentifier())); + + reloadTaskList(); + + assertTrue(taskList.getDefaultCategory().contains(task.getHandleIdentifier())); + } + + public void testUniqueTaskId() throws Exception { + LocalTask task1 = TasksUiInternal.createNewLocalTask("label"); + taskList.addTask(task1); + LocalTask task2 = TasksUiInternal.createNewLocalTask("label"); + taskList.addTask(task2); + assertEquals(2, taskList.getLastLocalTaskId()); + taskList.deleteTask(task2); + LocalTask task3 = TasksUiInternal.createNewLocalTask("label"); + taskList.addTask(task3); + assertTrue(task3.getHandleIdentifier() + " should end with 3", task3.getHandleIdentifier().endsWith("3")); + assertEquals(3, taskList.getLastLocalTaskId()); + assertEquals(2, taskList.getAllTasks().size()); + + reloadTaskList(); + assertEquals(2, taskList.getAllTasks().size()); + assertEquals(3, taskList.getLastLocalTaskId()); + ITask task4 = TasksUiInternal.createNewLocalTask("label"); + assertTrue(task4.getHandleIdentifier() + " should end with 4", task4.getHandleIdentifier().endsWith("4")); + } + + public void testSingleTaskDeletion() throws Exception { + MockTask task = new MockTask("1"); + taskList.addTask(task, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); + assertEquals(1, taskList.getAllTasks().size()); + taskList.deleteTask(task); + assertEquals(0, taskList.getAllTasks().size()); + taskList.addTask(task, taskList.getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); + assertEquals(1, taskList.getAllTasks().size()); + + reloadTaskList(); + assertEquals(1, taskList.getAllTasks().size()); + + taskList.deleteTask(task); + assertEquals(0, taskList.getAllTasks().size()); + + reloadTaskList(); + assertEquals(0, taskList.getAllTasks().size()); + } + + public void testCategoryPersistance() throws Exception { + MockTask task = new MockTask("1"); + TaskCategory category = new TaskCategory("cat"); + taskList.addCategory(category); + taskList.addTask(task, category); + assertNotNull(taskList); + assertEquals(2, taskList.getCategories().size()); + + reloadTaskList(); + assertEquals("" + taskList.getCategories(), 2, taskList.getCategories().size()); + assertEquals(1, taskList.getAllTasks().size()); + } + + public void testCreate() throws Exception { + MockTask repositoryTask = new MockTask("1"); + taskList.addTask(repositoryTask, taskList.getDefaultCategory()); + assertEquals(1, taskList.getDefaultCategory().getChildren().size()); + + reloadTaskList(); + assertEquals(1, taskList.getAllTasks().size()); + } + + public void testCreateAndMove() throws Exception { + MockTask repositoryTask = new MockTask("1"); + taskList.addTask(repositoryTask); + assertEquals(1, taskList.getAllTasks().size()); + + reloadTaskList(); + assertEquals(1, taskList.getAllTasks().size()); + assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size()); + } + + public void testArchiveRepositoryTaskExternalization() throws Exception { + MockTask repositoryTask = new MockTask("1"); + taskList.addTask(repositoryTask); + assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size()); + + reloadTaskList(); + assertEquals(1, taskList.getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL).getChildren().size()); + } + + public void testRepositoryTasksAndCategoriesMultiRead() throws Exception { + TaskCategory cat1 = new TaskCategory("Category 1"); + taskList.addCategory(cat1); + + MockTask reportInCat1 = new MockTask("123"); + taskList.addTask(reportInCat1, cat1); + assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1)); + + reloadTaskList(); + + // read once + Set<AbstractTaskCategory> readCats = taskList.getTaskCategories(); + assertTrue(taskList.getCategories().contains(cat1)); + Iterator<AbstractTaskCategory> iterator = readCats.iterator(); + + boolean found = false; + while (iterator.hasNext()) { + ITaskContainer readCat1 = iterator.next(); + if (cat1.equals(readCat1)) { + found = true; + assertEquals(1, readCat1.getChildren().size()); + } + } + if (!found) { + fail(" Category not found afer tasklist read"); + } + + reloadTaskList(); + + // read again + readCats = taskList.getTaskCategories(); + assertTrue(taskList.getCategories().contains(cat1)); + + iterator = readCats.iterator(); + found = false; + while (iterator.hasNext()) { + ITaskContainer readCat1 = iterator.next(); + if (cat1.equals(readCat1)) { + found = true; + assertEquals(1, readCat1.getChildren().size()); + } + } + if (!found) { + fail(" Category not found afer tasklist read"); + } + } + + public void testSubTaskExternalization() throws Exception { + Set<AbstractTask> rootTasks = new HashSet<AbstractTask>(); + AbstractTask task1 = new LocalTask("1", "task1"); + taskList.addTask(task1); + rootTasks.add(task1); + + AbstractTask sub2 = new LocalTask("2", "sub 2"); + taskList.addTask(sub2, task1); + assertEquals(1, task1.getChildren().size()); + assertTrue(rootTasks.containsAll(taskList.getDefaultCategory().getChildren())); + + reloadTaskList(); + + // XXX: This should pass once sub tasks are handled properly +// assertTrue(rootTasks.containsAll(taskList.getOrphanContainer( +// LocalRepositoryConnector.REPOSITORY_URL).getChildren())); + + Collection<ITask> readList = taskList.getDefaultCategory().getChildren(); + for (ITask task : readList) { + if (task.equals(task1)) { + assertEquals(task1.getSummary(), task.getSummary()); + assertEquals(1, ((ITaskContainer) task).getChildren().size()); + } + } + } + + public void testCreationAndExternalization() throws Exception { + Set<AbstractTask> rootTasks = new HashSet<AbstractTask>(); + AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); + rootTasks.add(task1); + assertEquals(1, taskList.getAllTasks().size()); + + AbstractTask sub1 = TasksUiInternal.createNewLocalTask("sub 1"); + taskList.addTask(sub1, task1); + assertEquals(4, taskList.getRootElements().size()); + + //taskList.moveToContainer(sub1, taskList.getArchiveContainer()); + + AbstractTask task2 = TasksUiInternal.createNewLocalTask("task 2"); + rootTasks.add(task2); + assertEquals(3, taskList.getAllTasks().size()); + + Set<TaskCategory> categories = new HashSet<TaskCategory>(); + Set<AbstractTask> cat1Contents = new HashSet<AbstractTask>(); + TaskCategory cat1 = new TaskCategory("Category 1"); + taskList.addCategory(cat1); + categories.add(cat1); + assertEquals(5, taskList.getRootElements().size()); + + AbstractTask task3 = TasksUiInternal.createNewLocalTask("task 3"); + taskList.addTask(task3, cat1); + cat1Contents.add(task3); + assertEquals(4, taskList.getAllTasks().size()); + assertEquals(cat1, TaskCategory.getParentTaskCategory(task3)); + AbstractTask sub2 = TasksUiInternal.createNewLocalTask("sub 2"); + assertEquals(5, taskList.getAllTasks().size()); + taskList.addTask(sub2, task3); + //taskList.moveToContainer(sub2, taskList.getArchiveContainer()); + + AbstractTask task4 = TasksUiInternal.createNewLocalTask("task 4"); + taskList.addTask(task4, cat1); + cat1Contents.add(task4); + assertEquals(6, taskList.getAllTasks().size()); + + MockTask reportInCat1 = new MockTask("123"); + taskList.addTask(reportInCat1, cat1); + assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1)); + cat1Contents.add(reportInCat1); + assertEquals(7, taskList.getAllTasks().size()); + + assertEquals(5, taskList.getRootElements().size()); + + TasksUiPlugin.getExternalizationManager().requestSave(); + TasksUiPlugin.getDefault().reloadDataDirectory(); + + Collection<ITask> readList = taskList.getDefaultCategory().getChildren(); + for (ITask task : readList) { + if (task.equals(task1)) { + assertEquals(task1.getSummary(), task.getSummary()); + assertEquals(1, ((AbstractTaskContainer) task).getChildren().size()); + } + } + + Set<AbstractTaskCategory> readCats = taskList.getTaskCategories(); + assertTrue(taskList.getCategories().contains(cat1)); + Iterator<AbstractTaskCategory> iterator = readCats.iterator(); + boolean found = false; + while (iterator.hasNext()) { + ITaskContainer readCat1 = iterator.next(); + if (cat1.equals(readCat1)) { + found = true; + for (ITask task : readCat1.getChildren()) { + assertTrue(cat1Contents.contains(task)); + } + } + } + if (!found) { + fail(" Category not found afer tasklist read"); + } + } + + public void testExternalizationOfHandlesWithDash() throws Exception { + AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); + taskList.addTask(task1, taskList.getDefaultCategory()); + + TasksUiPlugin.getExternalizationManager().requestSave(); + TasksUiPlugin.getDefault().reloadDataDirectory(); + assertTrue(taskList.getDefaultCategory().getChildren().contains(task1)); + } + } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java deleted file mode 100644 index f44f0b8f3..000000000 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListManagerTest.java +++ /dev/null @@ -1,1006 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2004, 2008 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.tasks.tests; - -import java.io.File; -import java.io.IOException; -import java.util.Calendar; -import java.util.Collection; -import java.util.Date; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; - -import junit.framework.TestCase; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.mylyn.internal.context.core.ContextCorePlugin; -import org.eclipse.mylyn.internal.context.core.InteractionContext; -import org.eclipse.mylyn.internal.context.core.InteractionContextManager; -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.ITaskList; -import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; -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.TaskList; -import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData; -import org.eclipse.mylyn.internal.tasks.ui.ITasksUiPreferenceConstants; -import org.eclipse.mylyn.internal.tasks.ui.RefactorRepositoryUrlOperation; -import org.eclipse.mylyn.internal.tasks.ui.TaskListManager; -import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; -import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal; -import org.eclipse.mylyn.monitor.core.InteractionEvent; -import org.eclipse.mylyn.tasks.core.IRepositoryQuery; -import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.ITaskContainer; -import org.eclipse.mylyn.tasks.core.TaskRepository; -import org.eclipse.mylyn.tasks.tests.connector.MockAttributeFactory; -import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; -import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryQuery; -import org.eclipse.mylyn.tasks.tests.connector.MockTask; - -/** - * @author Mik Kersten - */ -public class TaskListManagerTest extends TestCase { - - private TaskListManager manager; - - private TaskRepository repository; - - @Override - protected void setUp() throws Exception { - super.setUp(); - TasksUiPlugin.getDefault().getPreferenceStore().setValue( - ITasksUiPreferenceConstants.REPOSITORY_SYNCH_SCHEDULE_ENABLED, false); - manager = TasksUiPlugin.getTaskListManager(); - for (TaskRepository repository : TasksUiPlugin.getRepositoryManager().getAllRepositories()) { - TasksUiPlugin.getRepositoryManager().removeRepository(repository, - TasksUiPlugin.getDefault().getRepositoriesFilePath()); - } - manager.resetTaskList(); - assertEquals(0, manager.getTaskList().getAllTasks().size()); -// manager.readExistingOrCreateNewList(); - TasksUiPlugin.getExternalizationManager().save(true); - TasksUiPlugin.getDefault().reloadDataDirectory(); - - repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL); - TasksUiPlugin.getRepositoryManager().addRepository(repository); - - assertEquals(0, manager.getTaskList().getAllTasks().size()); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - TasksUiPlugin.getRepositoryManager().removeRepository(repository, - TasksUiPlugin.getDefault().getRepositoriesFilePath()); - manager.resetTaskList(); - TasksUiPlugin.getExternalizationManager().save(true); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - } - - public void testUncategorizedTasksNotLost() throws CoreException { - MockRepositoryQuery query = new MockRepositoryQuery("Test"); - manager.getTaskList().addQuery(query); - MockTask task = new MockTask("1"); - manager.getTaskList().addTask(task, query); - manager.getTaskList().addTask(task, manager.getTaskList().getDefaultCategory()); - assertTrue(query.contains(task.getHandleIdentifier())); - assertTrue(manager.getTaskList().getDefaultCategory().contains(task.getHandleIdentifier())); - - TasksUiPlugin.getExternalizationManager().requestSave(); - manager.resetTaskList(); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - assertFalse(manager.getTaskList().getDefaultCategory().contains(task.getHandleIdentifier())); - TasksUiPlugin.getDefault().reloadDataDirectory(); - - assertTrue(manager.getTaskList().getDefaultCategory().contains(task.getHandleIdentifier())); - - } - - public void testQueryAndCategoryNameClash() { - TaskCategory category = new TaskCategory("TestClash"); - manager.getTaskList().addCategory(category); - assertTrue(manager.getTaskList().getCategories().contains(category)); - assertEquals(2, manager.getTaskList().getCategories().size()); - - MockRepositoryQuery query = new MockRepositoryQuery("TestClash"); - manager.getTaskList().addQuery(query); - assertTrue(manager.getTaskList().getCategories().contains(category)); - assertEquals(2, manager.getTaskList().getCategories().size()); - - manager.getTaskList().deleteCategory(category); - } - - public void testUniqueTaskID() { - LocalTask task1 = TasksUiInternal.createNewLocalTask("label"); - manager.getTaskList().addTask(task1); - LocalTask task2 = TasksUiInternal.createNewLocalTask("label"); - manager.getTaskList().addTask(task2); - assertEquals(2, manager.getTaskList().getLastLocalTaskId()); - manager.getTaskList().deleteTask(task2); - LocalTask task3 = TasksUiInternal.createNewLocalTask("label"); - manager.getTaskList().addTask(task3); - assertTrue(task3.getHandleIdentifier() + " should end with 3", task3.getHandleIdentifier().endsWith("3")); - assertEquals(3, manager.getTaskList().getLastLocalTaskId()); - - assertEquals(2, manager.getTaskList().getAllTasks().size()); - manager.saveTaskList(); - manager.resetTaskList(); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - assertEquals(0, manager.getTaskList().getLastLocalTaskId()); - manager.readExistingOrCreateNewList(); - assertEquals(2, manager.getTaskList().getAllTasks().size()); - assertEquals(3, manager.getTaskList().getLastLocalTaskId()); - ITask task4 = TasksUiInternal.createNewLocalTask("label"); - assertTrue(task4.getHandleIdentifier() + " should end with 4", task4.getHandleIdentifier().endsWith("4")); - } - - public void testSingleTaskDeletion() { - MockTask task = new MockTask("1"); - task.setLastReadTimeStamp("now"); - manager.getTaskList().addTask(task, - manager.getTaskList().getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - manager.getTaskList().deleteTask(task); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - manager.getTaskList().addTask(task, - manager.getTaskList().getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - - manager.saveTaskList(); - - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - - manager.getTaskList().deleteTask(task); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - manager.saveTaskList(); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - } - - private void runRepositoryUrlOperation(String oldUrl, String newUrl) { - try { - new RefactorRepositoryUrlOperation(oldUrl, newUrl).run(new NullProgressMonitor()); - } catch (Exception e) { - fail(); - } - } - - public void testMigrateTaskContextFiles() throws IOException { - File fileA = ContextCorePlugin.getContextStore().getFileForContext("http://a-1"); - fileA.createNewFile(); - fileA.deleteOnExit(); - assertTrue(fileA.exists()); - runRepositoryUrlOperation("http://a", "http://b"); - File fileB = ContextCorePlugin.getContextStore().getFileForContext("http://b-1"); - assertTrue(fileB.exists()); - assertFalse(fileA.exists()); - } - - public void testMigrateQueryUrlHandles() { - RepositoryQuery query = new MockRepositoryQuery("mquery"); - query.setRepositoryUrl("http://foo.bar"); - query.setUrl("http://foo.bar/b"); - manager.getTaskList().addQuery(query); - assertTrue(manager.getTaskList().getRepositoryQueries("http://foo.bar").size() > 0); - runRepositoryUrlOperation("http://foo.bar", "http://bar.baz"); - assertTrue(manager.getTaskList().getRepositoryQueries("http://foo.bar").size() == 0); - assertTrue(manager.getTaskList().getRepositoryQueries("http://bar.baz").size() > 0); - IRepositoryQuery changedQuery = manager.getTaskList().getRepositoryQueries("http://bar.baz").iterator().next(); - assertEquals("http://bar.baz/b", changedQuery.getUrl()); - } - - public void testMigrateQueryHandles() { - RepositoryQuery query = new MockRepositoryQuery("mquery"); - query.setRepositoryUrl("http://a"); - manager.getTaskList().addQuery(query); - runRepositoryUrlOperation("http://a", "http://b"); - assertFalse(manager.getTaskList().getRepositoryQueries("http://b").isEmpty()); - assertTrue(manager.getTaskList().getRepositoryQueries("http://a").isEmpty()); - } - -// public void testMigrateQueryHits() { -// AbstractRepositoryQuery query = new MockRepositoryQuery("mquery", -// manager.getTaskList()); -// query.setRepositoryUrl("http://a"); -// manager.getTaskList().addQuery(query); -// AbstractQueryHit hit = new MockQueryHit(manager.getTaskList(), "http://a", -// "", "123"); -// query.addHit(hit); -// runRepositoryUrlOperation("http://a", "http://b"); -// assertNotNull(manager.getTaskList().getQueryHit("http://b-123")); -// assertEquals("http://b-123", hit.getHandleIdentifier()); -// } - - public void testMigrateTaskHandles() { - AbstractTask task = new MockTask("http://a", "123"); - AbstractTask task2 = new MockTask("http://other", "other"); - manager.getTaskList().addTask(task); - manager.getTaskList().addTask(task2); - - RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(), task.getConnectorKind(), - task.getRepositoryUrl(), task.getTaskId(), task.getTaskKind()); - TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData); - assertNotNull(TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task.getRepositoryUrl(), - task.getTaskId())); - - RepositoryTaskData taskData2 = new RepositoryTaskData(new MockAttributeFactory(), task2.getConnectorKind(), - task2.getRepositoryUrl(), task2.getTaskId(), task2.getTaskKind()); - taskData2.setNewComment("TEST"); - TasksUiPlugin.getTaskDataStorageManager().setNewTaskData(taskData2); - assertNotNull(TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task2.getRepositoryUrl(), - task2.getTaskId())); - assertEquals("TEST", TasksUiPlugin.getTaskDataStorageManager().getNewTaskData(task2.getRepositoryUrl(), - task2.getTaskId()).getNewComment()); - - runRepositoryUrlOperation("http://a", "http://b"); - assertNull(manager.getTaskList().getTask("http://a-123")); - assertNotNull(manager.getTaskList().getTask("http://b-123")); - assertNotNull(TasksUiPlugin.getTaskDataStorageManager().getNewTaskData("http://b", "123")); - RepositoryTaskData otherData = TasksUiPlugin.getTaskDataStorageManager().getNewTaskData( - task2.getRepositoryUrl(), task2.getTaskId()); - assertNotNull(otherData); - assertEquals("TEST", otherData.getNewComment()); - } - - public void testMigrateTaskHandlesWithExplicitSet() { - AbstractTask task = new MockTask("http://a", "123"); - task.setUrl("http://a/task/123"); - manager.getTaskList().addTask(task); - runRepositoryUrlOperation("http://a", "http://b"); - assertNull(manager.getTaskList().getTask("http://a-123")); - assertNotNull(manager.getTaskList().getTask("http://b-123")); - assertEquals("http://b/task/123", task.getUrl()); - } - - public void testRefactorMetaContextHandles() { - String firstUrl = "http://repository1.com/bugs"; - String secondUrl = "http://repository2.com/bugs"; - AbstractTask task1 = new MockTask(firstUrl, "1"); - AbstractTask task2 = new MockTask(firstUrl, "2"); - manager.getTaskList().addTask(task1); - manager.getTaskList().addTask(task2); - Calendar startDate = Calendar.getInstance(); - Calendar endDate = Calendar.getInstance(); - endDate.add(Calendar.MINUTE, 5); - - Calendar startDate2 = Calendar.getInstance(); - startDate2.add(Calendar.MINUTE, 15); - Calendar endDate2 = Calendar.getInstance(); - endDate2.add(Calendar.MINUTE, 25); - - ContextCorePlugin.getContextManager().resetActivityMetaContext(); - InteractionContext metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext(); - assertEquals(0, metaContext.getInteractionHistory().size()); - - ContextCorePlugin.getContextManager().processActivityMetaContextEvent( - new InteractionEvent(InteractionEvent.Kind.ATTENTION, - InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task1.getHandleIdentifier(), "origin", - null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate.getTime(), - endDate.getTime())); - - ContextCorePlugin.getContextManager().processActivityMetaContextEvent( - new InteractionEvent(InteractionEvent.Kind.ATTENTION, - InteractionContextManager.ACTIVITY_STRUCTUREKIND_TIMING, task2.getHandleIdentifier(), "origin", - null, InteractionContextManager.ACTIVITY_DELTA_ADDED, 1f, startDate2.getTime(), - endDate2.getTime())); - - assertEquals(2, metaContext.getInteractionHistory().size()); - assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task1)); - assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(task2)); - runRepositoryUrlOperation(firstUrl, secondUrl); - metaContext = ContextCorePlugin.getContextManager().getActivityMetaContext(); - assertEquals(2, metaContext.getInteractionHistory().size()); - assertEquals(60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime(new MockTask(secondUrl, "1"))); - assertEquals(2 * 60 * 1000 * 5, TasksUiPlugin.getTaskActivityManager().getElapsedTime( - new MockTask(secondUrl, "2"))); - assertEquals(secondUrl + "-1", metaContext.getInteractionHistory().get(0).getStructureHandle()); - } - - public void testIsActiveToday() { - AbstractTask task = new LocalTask("1", "task-1"); - assertFalse(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - - task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday()); - assertTrue(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - - task.setReminded(true); - assertTrue(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - task.setReminded(true); - -// Calendar inAnHour = Calendar.getInstance(); -// inAnHour.set(Calendar.HOUR_OF_DAY, inAnHour.get(Calendar.HOUR_OF_DAY) + 1); -// inAnHour.getTime(); -// task.setScheduledForDate(inAnHour.getTime()); -// Calendar tomorrow = Calendar.getInstance(); -// TaskActivityUtil.snapToNextDay(tomorrow); -// assertEquals(-1, inAnHour.compareTo(tomorrow)); -// assertTrue(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - } - - public void testScheduledForToday() { - AbstractTask task = new LocalTask("1", "task-1"); - task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday()); - assertTrue(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - task.setScheduledForDate(TaskActivityUtil.getCurrentWeek().getToday().next()); - assertFalse(TasksUiPlugin.getTaskActivityManager().isScheduledForToday(task)); - } - - public void testSchedulePastEndOfMonth() { - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.MONTH, Calendar.SEPTEMBER); - calendar.set(Calendar.DAY_OF_MONTH, 30); - TaskActivityUtil.snapForwardNumDays(calendar, 1); - assertEquals("Should be October", Calendar.OCTOBER, calendar.get(Calendar.MONTH)); - } - - public void testIsCompletedToday() { - ITask task = new LocalTask("1", "task 1"); - task.setCompletionDate(new Date()); - assertTrue(TasksUiPlugin.getTaskActivityManager().isCompletedToday(task)); - - MockTask mockTask = new MockTask("1"); - mockTask.setOwner("unknown"); - manager.getTaskList().addTask(mockTask); - mockTask.setCompletionDate(new Date()); - assertFalse("completed: " + mockTask.getCompletionDate(), TasksUiPlugin.getTaskActivityManager() - .isCompletedToday(mockTask)); - - mockTask = new MockTask("2"); - manager.getTaskList().addTask(mockTask); - mockTask.setCompletionDate(new Date()); - repository.setAuthenticationCredentials("testUser", "testPassword"); - mockTask.setOwner("testUser"); - assertTrue(TasksUiPlugin.getTaskActivityManager().isCompletedToday(mockTask)); - - } - - public void testMoveCategories() { -// assertEquals(0, manager.getTaskList() -// .getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL) -// .getChildren() -// .size()); - - assertTrue(manager.getTaskList().getDefaultCategory().isEmpty()); - - AbstractTask task1 = new LocalTask("t1", "t1"); - - TaskCategory cat1 = new TaskCategory("cat1"); - manager.getTaskList().addCategory(cat1); - TaskCategory cat2 = new TaskCategory("cat2"); - manager.getTaskList().addCategory(cat2); - - manager.getTaskList().addTask(task1, cat1); - assertEquals(1, manager.getTaskList().getContainerForHandle("cat1").getChildren().size()); - assertEquals(0, manager.getTaskList().getContainerForHandle("cat2").getChildren().size()); - - manager.getTaskList().addTask(task1, cat2); - assertEquals(0, manager.getTaskList().getContainerForHandle("cat1").getChildren().size()); - assertEquals(1, manager.getTaskList().getContainerForHandle("cat2").getChildren().size()); - } - - public void testMoveToRoot() { -// assertEquals(0, manager.getTaskList() -// .getOrphanContainer(LocalRepositoryConnector.REPOSITORY_URL) -// .getChildren() -// .size()); - assertTrue(manager.getTaskList().getDefaultCategory().isEmpty()); - - AbstractTask task1 = new LocalTask("t1", "t1"); - manager.getTaskList().addTask(task1, - manager.getTaskList().getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); - assertEquals(1, manager.getTaskList().getDefaultCategory().getChildren().size()); - assertEquals(manager.getTaskList().getDefaultCategory(), TaskCategory.getParentTaskCategory(task1)); - - TaskCategory cat1 = new TaskCategory("c1"); - manager.getTaskList().addCategory(cat1); - - manager.getTaskList().addTask(task1, cat1); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - assertEquals(cat1, TaskCategory.getParentTaskCategory(task1)); - - manager.getTaskList().addTask(task1, - manager.getTaskList().getUnmatchedContainer(LocalRepositoryConnector.REPOSITORY_URL)); - assertEquals(1, manager.getTaskList().getDefaultCategory().getChildren().size()); - assertEquals(0, cat1.getChildren().size()); - assertEquals(manager.getTaskList().getDefaultCategory(), TaskCategory.getParentTaskCategory(task1)); - } - - public void testCategoryPersistance() { - MockTask task = new MockTask("1"); - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - manager.getTaskList().addTask(task, category); - assertNotNull(manager.getTaskList()); - assertEquals(2, manager.getTaskList().getCategories().size()); - - manager.saveTaskList(); - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - assertEquals("" + manager.getTaskList().getCategories(), 2, manager.getTaskList().getCategories().size()); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - } - - public void testDeleteCategory() { - assertNotNull(manager.getTaskList()); - assertEquals(1, manager.getTaskList().getCategories().size()); - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - assertEquals(2, manager.getTaskList().getCategories().size()); - manager.getTaskList().deleteCategory(category); - assertEquals(1, manager.getTaskList().getCategories().size()); - } - - public void testDeleteCategoryMovesTasksToRoot() { - AbstractTask task = new MockTask("delete"); - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - manager.getTaskList().addTask(task, category); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - manager.getTaskList().deleteCategory(category); - manager.getTaskList().getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL); - } - - public void testRenameCategory() { - - assertNotNull(manager.getTaskList()); - - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - assertEquals(2, manager.getTaskList().getCategories().size()); - String newDesc = "newDescription"; - manager.getTaskList().renameContainer(category, newDesc); - AbstractTaskCategory container = manager.getTaskList().getContainerForHandle(newDesc); - assertNotNull(container); - assertEquals(newDesc, container.getSummary()); - manager.getTaskList().deleteCategory(container); - assertEquals(1, manager.getTaskList().getCategories().size()); - } - - public void testDeleteCategoryAfterRename() { - String newDesc = "newDescription"; - assertNotNull(manager.getTaskList()); - assertEquals(1, manager.getTaskList().getCategories().size()); - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - assertEquals(2, manager.getTaskList().getCategories().size()); - manager.getTaskList().renameContainer(category, newDesc); - manager.getTaskList().deleteCategory(category); - assertEquals(1, manager.getTaskList().getCategories().size()); - } - - public void testCreateSameCategoryName() { - assertNotNull(manager.getTaskList()); - assertEquals(1, manager.getTaskList().getCategories().size()); - TaskCategory category = new TaskCategory("cat"); - manager.getTaskList().addCategory(category); - assertEquals(2, manager.getTaskList().getCategories().size()); - TaskCategory category2 = new TaskCategory("cat"); - manager.getTaskList().addCategory(category2); - assertEquals(2, manager.getTaskList().getCategories().size()); - ITaskContainer container = manager.getTaskList().getContainerForHandle("cat"); - assertEquals(container, category); - } - - public void testDeleteRootTask() { - AbstractTask task = new LocalTask("1", "label"); - manager.getTaskList().addTask(task); - manager.getTaskList().deleteTask(task); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - } - - public void testDeleteFromCategory() { - assertEquals(0, manager.getTaskList().getAllTasks().size()); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - //assertEquals(0, manager.getTaskList().getArchiveContainer().getChildren().size()); - assertEquals(1, manager.getTaskList().getCategories().size()); - - AbstractTask task = new LocalTask("1", "label"); - TaskCategory category = new TaskCategory("handleAndDescription"); - manager.getTaskList().addTask(task); - assertEquals(1, manager.getTaskList().getDefaultCategory().getChildren().size()); - - manager.getTaskList().addCategory(category); - manager.getTaskList().addTask(task, category); - assertEquals(2, manager.getTaskList().getCategories().size()); - assertEquals(1, category.getChildren().size()); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - - manager.getTaskList().deleteTask(task); - assertEquals(0, manager.getTaskList().getAllTasks().size()); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - assertEquals(0, category.getChildren().size()); - } - - public void testDeleteRepositoryTask() { - String repositoryUrl = "http://somewhere.com"; - repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, repositoryUrl); - TasksUiPlugin.getRepositoryManager().addRepository(repository); - MockTask task = new MockTask(repositoryUrl, "1"); - TaskList taskList = TasksUiPlugin.getTaskList(); - taskList.addTask(task, manager.getTaskList().getDefaultCategory()); - MockRepositoryQuery query = new MockRepositoryQuery("query"); - taskList.addQuery(query); - taskList.addTask(task, query); - assertEquals(1, taskList.getAllTasks().size()); - assertEquals(1, manager.getTaskList().getDefaultCategory().getChildren().size()); - taskList.deleteTask(task); - assertEquals(0, taskList.getAllTasks().size()); - assertEquals(0, manager.getTaskList().getDefaultCategory().getChildren().size()); - } - - public void testCreate() { - MockTask repositoryTask = new MockTask("1"); - repositoryTask.setLastReadTimeStamp("now"); - manager.getTaskList().addTask(repositoryTask, manager.getTaskList().getDefaultCategory()); - assertEquals(1, manager.getTaskList().getDefaultCategory().getChildren().size()); - manager.saveTaskList(); - - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - } - - public void testCreateAndMove() throws CoreException { - MockTask repositoryTask = new MockTask("1"); - repositoryTask.setLastReadTimeStamp("now"); - manager.getTaskList().addTask(repositoryTask); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - TasksUiPlugin.getExternalizationManager().requestSave(); - TasksUiPlugin.getDefault().reloadDataDirectory(); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - assertEquals(1, manager.getTaskList() - .getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL) - .getChildren() - .size()); - - } - - public void testArchiveRepositoryTaskExternalization() { - MockTask repositoryTask = new MockTask("1"); - repositoryTask.setLastReadTimeStamp("now"); - manager.getTaskList().addTask(repositoryTask); - assertEquals(1, manager.getTaskList() - .getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL) - .getChildren() - .size()); - manager.saveTaskList(); - - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - assertEquals(1, manager.getTaskList() - .getUnmatchedContainer(MockRepositoryConnector.REPOSITORY_URL) - .getChildren() - .size()); - } - - public void testRepositoryTasksAndCategoriesMultiRead() { - TaskCategory cat1 = new TaskCategory("Category 1"); - manager.getTaskList().addCategory(cat1); - - MockTask reportInCat1 = new MockTask("123"); - manager.getTaskList().addTask(reportInCat1, cat1); - assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1)); - - manager.saveTaskList(); - assertNotNull(manager.getTaskList()); - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - - // read once - Set<AbstractTaskCategory> readCats = manager.getTaskList().getTaskCategories(); - assertTrue(manager.getTaskList().getCategories().contains(cat1)); - Iterator<AbstractTaskCategory> iterator = readCats.iterator(); - - boolean found = false; - while (iterator.hasNext()) { - ITaskContainer readCat1 = iterator.next(); - if (cat1.equals(readCat1)) { - found = true; - assertEquals(1, readCat1.getChildren().size()); - } - } - if (!found) { - fail(" Category not found afer tasklist read"); - } - - manager.saveTaskList(); - assertNotNull(manager.getTaskList()); - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - - // read again - readCats = manager.getTaskList().getTaskCategories(); - assertTrue(manager.getTaskList().getCategories().contains(cat1)); - - iterator = readCats.iterator(); - found = false; - while (iterator.hasNext()) { - ITaskContainer readCat1 = iterator.next(); - if (cat1.equals(readCat1)) { - found = true; - assertEquals(1, readCat1.getChildren().size()); - } - } - if (!found) { - fail(" Category not found afer tasklist read"); - } - } - - public void testSubTaskExternalization() { - Set<AbstractTask> rootTasks = new HashSet<AbstractTask>(); - AbstractTask task1 = new LocalTask("1", "task1"); - manager.getTaskList().addTask(task1); - rootTasks.add(task1); - - AbstractTask sub2 = new LocalTask("2", "sub 2"); - manager.getTaskList().addTask(sub2, task1); - assertEquals(1, task1.getChildren().size()); - assertTrue(rootTasks.containsAll(manager.getTaskList().getDefaultCategory().getChildren())); - - manager.saveTaskList(); - assertNotNull(manager.getTaskList()); - manager.resetTaskList(); - manager.readExistingOrCreateNewList(); - - assertNotNull(manager.getTaskList()); - - // XXX: This should pass once sub tasks are handled properly -// assertTrue(rootTasks.containsAll(manager.getTaskList().getOrphanContainer( -// LocalRepositoryConnector.REPOSITORY_URL).getChildren())); - - Collection<ITask> readList = manager.getTaskList().getDefaultCategory().getChildren(); - for (ITask task : readList) { - if (task.equals(task1)) { - assertEquals(task1.getSummary(), task.getSummary()); - assertEquals(1, ((ITaskContainer) task).getChildren().size()); - } - } - } - - public void testCreationAndExternalization() throws CoreException { - Set<AbstractTask> rootTasks = new HashSet<AbstractTask>(); - AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); - rootTasks.add(task1); - assertEquals(1, manager.getTaskList().getAllTasks().size()); - - AbstractTask sub1 = TasksUiInternal.createNewLocalTask("sub 1"); - manager.getTaskList().addTask(sub1, task1); - assertEquals(4, manager.getTaskList().getRootElements().size()); - - //manager.getTaskList().moveToContainer(sub1, manager.getTaskList().getArchiveContainer()); - - AbstractTask task2 = TasksUiInternal.createNewLocalTask("task 2"); - rootTasks.add(task2); - assertEquals(3, manager.getTaskList().getAllTasks().size()); - - Set<TaskCategory> categories = new HashSet<TaskCategory>(); - Set<AbstractTask> cat1Contents = new HashSet<AbstractTask>(); - TaskCategory cat1 = new TaskCategory("Category 1"); - manager.getTaskList().addCategory(cat1); - categories.add(cat1); - assertEquals(5, manager.getTaskList().getRootElements().size()); - - AbstractTask task3 = TasksUiInternal.createNewLocalTask("task 3"); - manager.getTaskList().addTask(task3, cat1); - cat1Contents.add(task3); - assertEquals(4, manager.getTaskList().getAllTasks().size()); - assertEquals(cat1, TaskCategory.getParentTaskCategory(task3)); - AbstractTask sub2 = TasksUiInternal.createNewLocalTask("sub 2"); - assertEquals(5, manager.getTaskList().getAllTasks().size()); - manager.getTaskList().addTask(sub2, task3); - //manager.getTaskList().moveToContainer(sub2, manager.getTaskList().getArchiveContainer()); - - AbstractTask task4 = TasksUiInternal.createNewLocalTask("task 4"); - manager.getTaskList().addTask(task4, cat1); - cat1Contents.add(task4); - assertEquals(6, manager.getTaskList().getAllTasks().size()); - - MockTask reportInCat1 = new MockTask("123"); - manager.getTaskList().addTask(reportInCat1, cat1); - assertEquals(cat1, TaskCategory.getParentTaskCategory(reportInCat1)); - cat1Contents.add(reportInCat1); - assertEquals(7, manager.getTaskList().getAllTasks().size()); - - assertEquals(5, manager.getTaskList().getRootElements().size()); - - TasksUiPlugin.getExternalizationManager().requestSave(); - TasksUiPlugin.getDefault().reloadDataDirectory(); - - Collection<ITask> readList = manager.getTaskList().getDefaultCategory().getChildren(); - for (ITask task : readList) { - if (task.equals(task1)) { - assertEquals(task1.getSummary(), task.getSummary()); - assertEquals(1, ((AbstractTaskContainer) task).getChildren().size()); - } - } - - Set<AbstractTaskCategory> readCats = manager.getTaskList().getTaskCategories(); - assertTrue(manager.getTaskList().getCategories().contains(cat1)); - Iterator<AbstractTaskCategory> iterator = readCats.iterator(); - boolean found = false; - while (iterator.hasNext()) { - ITaskContainer readCat1 = iterator.next(); - if (cat1.equals(readCat1)) { - found = true; - for (ITask task : readCat1.getChildren()) { - assertTrue(cat1Contents.contains(task)); - } - } - } - if (!found) { - fail(" Category not found afer tasklist read"); - } - } - - public void testExternalizationOfHandlesWithDash() throws CoreException { - AbstractTask task1 = TasksUiInternal.createNewLocalTask("task 1"); - manager.getTaskList().addTask(task1, manager.getTaskList().getDefaultCategory()); - - TasksUiPlugin.getExternalizationManager().requestSave(); - TasksUiPlugin.getDefault().reloadDataDirectory(); - assertTrue(manager.getTaskList().getDefaultCategory().getChildren().contains(task1)); - } - - public void testgetQueriesAndHitsForHandle() { - TaskList taskList = manager.getTaskList(); - - 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 testQueryHitHasParent() { -// TaskList taskList = manager.getTaskList(); -// -// MockQueryHit hit1 = new MockQueryHit(taskList, -// MockRepositoryConnector.REPOSITORY_URL, "description1", "1"); -// assertNull(hit1.getParent()); -// MockRepositoryQuery query1 = new MockRepositoryQuery("query1", -// manager.getTaskList()); -// query1.addHit(hit1); -// assertEquals(query1, hit1.getParent()); -// -// } - - public void testUpdateQueryHits() { - ITaskList taskList = manager.getTaskList(); - - 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); - manager.getTaskList().addTask(task1); - - MockTask task2 = new MockTask("https://unresolved", bugNumber); - manager.getTaskList().addTask(task2); - - TaskList taskList = manager.getTaskList(); - assertEquals(2, taskList.getAllTasks().size()); - Set<ITask> tasksReturned = taskList.getTasks(repositoryUrl); - assertNotNull(tasksReturned); - assertEquals(1, tasksReturned.size()); - assertTrue(tasksReturned.contains(task1)); - } - - public void testAllTasksDeactivation() { - AbstractTask task1 = new LocalTask("task1", "description1"); - AbstractTask task2 = new LocalTask("task2", "description2"); - TaskList taskList = manager.getTaskList(); - taskList.addTask(task1); - taskList.addTask(task2); - assertNull(manager.getActiveTask()); - - manager.activateTask(task2); - assertEquals(task2, manager.getActiveTask()); - - manager.deactivateAllTasks(); - assertNull(manager.getActiveTask()); - } - - public void testMarkTaskRead() { - // TODO reimplement -// String repositoryUrl = "http://mylyn.eclipse.org/bugs222"; -// MockTask task1 = new MockTask(repositoryUrl, "1"); -// MockTask task2 = new MockTask(repositoryUrl, "2"); -// task1.setSynchronizationState(SynchronizationState.INCOMING); -// task2.setSynchronizationState(SynchronizationState.INCOMING); -// List<ITaskElement> elements = new ArrayList<ITaskElement>(); -// elements.add(task1); -// elements.add(task2); -// MarkTaskReadAction readAction = new MarkTaskReadAction(elements); -// readAction.run(); -// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState()); -// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState()); -// -// manager.getTaskList().reset(); -// MockTask hit1 = new MockTask("1"); -// MockTask hit2 = new MockTask("2"); -// MockRepositoryQuery query = new MockRepositoryQuery("summary"); -// manager.getTaskList().addQuery(query); -// manager.getTaskList().addTask(hit1, query); -// manager.getTaskList().addTask(hit2, query); -// -// elements.clear(); -// elements.add(query); -// readAction = new MarkTaskReadAction(elements); -// readAction.run(); -// assertEquals(2, query.getChildren().size()); -// for (ITaskElement element : query.getChildren()) { -// if (element instanceof MockTask) { -// MockTask mockTask = (MockTask) element; -// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState()); -// } -// } - - } - - public void testMarkUnRead() { - // TODO reimplement -// String repositoryUrl = "http://mylyn.eclipse.org/bugs222"; -// MockTask task1 = new MockTask(repositoryUrl, "1"); -// MockTask task2 = new MockTask(repositoryUrl, "2"); -// assertEquals(SynchronizationState.SYNCHRONIZED, task1.getSynchronizationState()); -// assertEquals(SynchronizationState.SYNCHRONIZED, task2.getSynchronizationState()); -// List<ITaskElement> elements = new ArrayList<ITaskElement>(); -// elements.add(task1); -// elements.add(task2); -// MarkTaskUnreadAction unreadAction = new MarkTaskUnreadAction(elements); -// unreadAction.run(); -// assertEquals(SynchronizationState.INCOMING, task1.getSynchronizationState()); -// assertEquals(SynchronizationState.INCOMING, task2.getSynchronizationState()); -// -// manager.getTaskList().reset(); -// MockTask hit1 = new MockTask("1"); -// MockTask hit2 = new MockTask("2"); -// MockRepositoryQuery query = new MockRepositoryQuery("summary"); -// manager.getTaskList().addQuery(query); -// manager.getTaskList().addTask(hit1, query); -// manager.getTaskList().addTask(hit2, query); -// -// elements.clear(); -// elements.add(query); -// MarkTaskReadAction readAction = new MarkTaskReadAction(elements); -// readAction.run(); -// assertEquals(2, query.getChildren().size()); -// for (ITaskElement element : query.getChildren()) { -// if (element instanceof MockTask) { -// MockTask mockTask = (MockTask) element; -// assertEquals(SynchronizationState.SYNCHRONIZED, mockTask.getSynchronizationState()); -// } else { -// fail(); -// } -// } -// -// unreadAction = new MarkTaskUnreadAction(elements); -// unreadAction.run(); -// assertEquals(2, query.getChildren().size()); -// for (ITaskElement element : query.getChildren()) { -// if (element instanceof MockTask) { -// MockTask mockTask = (MockTask) element; -// assertEquals(SynchronizationState.INCOMING, mockTask.getSynchronizationState()); -// } else { -// fail(); -// } -// } - } - - public void testQueryHitsNotDropped() { - MockTask task1 = new MockTask("1"); - MockTask task2 = new MockTask("2"); - task1.setLastReadTimeStamp("today"); - task2.setLastReadTimeStamp("today"); - MockRepositoryQuery query = new MockRepositoryQuery("summary"); - manager.getTaskList().addQuery(query); - manager.getTaskList().addTask(task1, query); - manager.getTaskList().addTask(task2, query); - //assertEquals(0, manager.getTaskList().getArchiveContainer().getChildren().size()); - assertEquals(2, query.getChildren().size()); - TaskRepository repository = TasksUiPlugin.getRepositoryManager().getRepository( - MockRepositoryConnector.REPOSITORY_URL); - Set<RepositoryQuery> queries = new HashSet<RepositoryQuery>(); - queries.add(query); - TasksUiInternal.synchronizeQueries(new MockRepositoryConnector(), repository, queries, null, true); - //assertEquals(2, manager.getTaskList().getArchiveContainer().getChildren().size()); - assertEquals(0, query.getChildren().size()); - } - -} diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java index 6ddd5abd7..fedeb6c19 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskListTest.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2008 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 @@ -11,12 +11,22 @@ package org.eclipse.mylyn.tasks.tests; +import java.util.Set; + import junit.framework.TestCase; -import org.eclipse.mylyn.internal.tasks.core.ITaskList; +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.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; /** * @author Mik Kersten @@ -25,14 +35,19 @@ import org.eclipse.mylyn.internal.tasks.core.TaskList; */ public class TaskListTest extends TestCase { + private TaskList taskList; + + @Override + protected void setUp() throws Exception { + taskList = new TaskList(); + } + public void testGetCategories() { - TaskList taskList = new TaskList(); taskList.addCategory(new TaskCategory("a")); assertEquals(2, taskList.getCategories().size()); } public void testLocalSubTaskAdd() { - ITaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); LocalTask subTask = new LocalTask("2", "subTask"); @@ -44,7 +59,6 @@ public class TaskListTest extends TestCase { } public void testLocalTaskAddToSelf() { - ITaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); taskList.addTask(task); @@ -54,7 +68,6 @@ public class TaskListTest extends TestCase { } public void testLocalSubTaskAddCycle() { - TaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); LocalTask subTask = new LocalTask("2", "subTask"); @@ -71,7 +84,6 @@ public class TaskListTest extends TestCase { } public void testLocalSubTaskAddDeepCycle() { - TaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); LocalTask subTask1 = new LocalTask("2", "subTask"); LocalTask subTask2 = new LocalTask("3", "subTask"); @@ -135,7 +147,6 @@ public class TaskListTest extends TestCase { } public void testLocalSubTaskAddMaxSubTaskDepthDeepCycle() { - TaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); LocalTask subTask1 = new LocalTask("2", "subTask"); LocalTask subTask2 = new LocalTask("3", "subTask"); @@ -204,7 +215,6 @@ public class TaskListTest extends TestCase { } public void testLocalSubTaskAddReallyDeepCycle() { - TaskList taskList = new TaskList(); LocalTask task = new LocalTask("1", "summary"); LocalTask subTask1 = new LocalTask("2", "subTask"); LocalTask subTask2 = new LocalTask("3", "subTask"); @@ -309,4 +319,237 @@ public class TaskListTest extends TestCase { 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 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)); + } + } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java index e31d41b4b..58bf8e2bf 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2008 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 @@ -23,8 +23,8 @@ import org.eclipse.mylyn.commons.net.AuthenticationType; import org.eclipse.mylyn.internal.tasks.core.AbstractTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractLegacyRepositoryConnector; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.core.TaskRepository; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; @@ -121,7 +121,7 @@ public class TaskRepositoryManagerTest extends TestCase { } public void testConnectorAddition() { - AbstractLegacyRepositoryConnector connector = new MockRepositoryConnector(); + AbstractRepositoryConnector connector = new MockRepositoryConnector(); manager.addRepositoryConnector(connector); assertNotNull(manager.getRepositoryConnector(connector.getConnectorKind())); } @@ -203,14 +203,13 @@ public class TaskRepositoryManagerTest extends TestCase { } public void testRepositoryWithCustomAttributes() throws Exception { - // Note: if a connector doesn't exist the associated repositories are not loaded (orphaned) // causing this test to fail. - AbstractLegacyRepositoryConnector connector = new MockRepositoryConnector(); + AbstractRepositoryConnector connector = new MockRepositoryConnector(); manager.addRepositoryConnector(connector); TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, - "http://jroller.com/page/eu"); + "http://mylyn.eclipse.org/"); repository.setProperty("owner", "euxx"); manager.addRepository(repository); TasksUiPlugin.getDefault(); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java index ffacda184..ec2fe6364 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttachmentHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2004, 2008 Tasktop Technologies and others. + * Copyright (c) 2004, 2008 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 @@ -12,73 +12,46 @@ package org.eclipse.mylyn.tasks.tests.connector; import java.io.ByteArrayInputStream; -import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractAttachmentHandler; -import org.eclipse.mylyn.internal.tasks.core.deprecated.ITaskAttachment; -import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryAttachment; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler; +import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentSource; +import org.eclipse.mylyn.tasks.core.data.TaskAttribute; /** * @author Steffen Pingel */ -public class MockAttachmentHandler extends AbstractAttachmentHandler { +public class MockAttachmentHandler extends AbstractTaskAttachmentHandler { private byte[] data; - @Override - public boolean canDeprecate(TaskRepository repository, RepositoryAttachment attachment) { - // ignore - return false; + public void setAttachmentData(byte[] data) { + this.data = data; } @Override - public boolean canDownloadAttachment(TaskRepository repository, ITask task) { - // ignore + public boolean canGetContent(TaskRepository repository, ITask task) { return true; } @Override - public boolean canUploadAttachment(TaskRepository repository, ITask task) { - // ignore + public boolean canPostContent(TaskRepository repository, ITask task) { return true; } @Override - public void downloadAttachment(TaskRepository repository, RepositoryAttachment attachment, OutputStream target, - IProgressMonitor monitor) throws CoreException { - try { - target.write(data); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - @Override - public InputStream getAttachmentAsStream(TaskRepository repository, RepositoryAttachment attachment, + public InputStream getContent(TaskRepository repository, ITask task, TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws CoreException { - // ignore return new ByteArrayInputStream(data); } @Override - public void updateAttachment(TaskRepository repository, RepositoryAttachment attachment) throws CoreException { - // ignore - } - - @Override - public void uploadAttachment(TaskRepository repository, ITask task, ITaskAttachment attachment, String comment, - IProgressMonitor monitor) throws CoreException { - // ignore - } - - public void setAttachmentData(byte[] data) { - this.data = data; + public void postContent(TaskRepository repository, ITask task, AbstractTaskAttachmentSource source, String comment, + TaskAttribute attachmentAttribute, IProgressMonitor monitor) throws CoreException { } } diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttributeFactory.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttributeFactory.java deleted file mode 100644 index 776ab6a81..000000000 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockAttributeFactory.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2004, 2008 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.tasks.tests.connector; - -import java.util.Date; - -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractAttributeFactory; - -/** - * @author Rob Elves - */ -public class MockAttributeFactory extends AbstractAttributeFactory { - - private static final long serialVersionUID = 7713746838934802731L; - - @Override - public boolean isHidden(String key) { - // ignore - return false; - } - - @Override - public String getName(String key) { - // ignore - return key; - } - - @Override - public boolean isReadOnly(String key) { - // ignore - return false; - } - - @Override - public String mapCommonAttributeKey(String key) { - return key; - } - - @Override - public Date getDateForAttributeType(String attributeKey, String dateString) { - // ignore - return null; - } - -} diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java index 37eed63d7..96e5bc235 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/connector/MockRepositoryConnector.java @@ -11,24 +11,16 @@ package org.eclipse.mylyn.tasks.tests.connector; -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; -import org.eclipse.mylyn.internal.tasks.core.AbstractTask; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractAttachmentHandler; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractAttributeFactory; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractLegacyRepositoryConnector; -import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractTaskDataHandler; -import org.eclipse.mylyn.internal.tasks.core.deprecated.RepositoryTaskData; +import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.IRepositoryQuery; import org.eclipse.mylyn.tasks.core.ITask; -import org.eclipse.mylyn.tasks.core.RepositoryTemplate; import org.eclipse.mylyn.tasks.core.TaskRepository; +import org.eclipse.mylyn.tasks.core.data.AbstractTaskAttachmentHandler; +import org.eclipse.mylyn.tasks.core.data.TaskData; import org.eclipse.mylyn.tasks.core.data.TaskDataCollector; import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession; @@ -36,15 +28,16 @@ import org.eclipse.mylyn.tasks.core.sync.ISynchronizationSession; * @author Mik Kersten * @author Rob Elves * @author Shawn Minto + * @author Steffen Pingel */ -public class MockRepositoryConnector extends AbstractLegacyRepositoryConnector { +public class MockRepositoryConnector extends AbstractRepositoryConnector { // TODO 3.1 rename to CONNECTOR_KIND public static final String REPOSITORY_KIND = "mock"; public static final String REPOSITORY_URL = "http://mockrepository.test"; - private AbstractAttachmentHandler attachmentHandler; + private AbstractTaskAttachmentHandler attachmentHandler; private boolean canQuery = false; @@ -86,63 +79,11 @@ public class MockRepositoryConnector extends AbstractLegacyRepositoryConnector { } @Override - public AbstractAttachmentHandler getAttachmentHandler() { - return attachmentHandler; - } - - @Override public String getLabel() { return "Mock Repository (for unit tests)"; } @Override - public AbstractTaskDataHandler getLegacyTaskDataHandler() { - // ignore - return new AbstractTaskDataHandler() { - - @Override - public AbstractAttributeFactory getAttributeFactory(String repositoryUrl, String repositoryKind, - String taskKind) { - // we don't care about the repository information right now - return new MockAttributeFactory(); - } - - @Override - public RepositoryTaskData getTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor) - throws CoreException { - // ignore - return null; - } - - @Override - public String postTaskData(TaskRepository repository, RepositoryTaskData taskData, IProgressMonitor monitor) - throws CoreException { - // ignore - return null; - } - - @Override - public boolean initializeTaskData(TaskRepository repository, RepositoryTaskData data, - IProgressMonitor monitor) throws CoreException { - // ignore - return false; - } - - @Override - public AbstractAttributeFactory getAttributeFactory(RepositoryTaskData taskData) { - // ignore - return new MockAttributeFactory(); - } - - @Override - public Set<String> getSubTaskIds(RepositoryTaskData taskData) { - return Collections.emptySet(); - } - - }; - } - - @Override public String getConnectorKind() { return REPOSITORY_KIND; } @@ -170,44 +111,42 @@ public class MockRepositoryConnector extends AbstractLegacyRepositoryConnector { } @Override - public void updateTaskFromRepository(TaskRepository repository, ITask repositoryTask, IProgressMonitor monitor) { - // ignore + public IStatus performQuery(TaskRepository repository, IRepositoryQuery query, TaskDataCollector resultCollector, + ISynchronizationSession event, IProgressMonitor monitor) { + return Status.OK_STATUS; } @Override - public AbstractTask createTask(String repositoryUrl, String id, String summary) { - // ignore - return null; + public AbstractTaskAttachmentHandler getTaskAttachmentHandler() { + return attachmentHandler; } - @Override - public boolean updateTaskFromTaskData(TaskRepository repository, ITask repositoryTask, RepositoryTaskData taskData) { - return false; + public void setTaskAttachmentHandler(MockAttachmentHandler attachmentHandler) { + this.attachmentHandler = attachmentHandler; } @Override - public IStatus performQuery(TaskRepository repository, IRepositoryQuery query, TaskDataCollector resultCollector, - ISynchronizationSession event, IProgressMonitor monitor) { - return Status.OK_STATUS; - } - - public void setAttachmentHandler(AbstractAttachmentHandler attachmentHandler) { - this.attachmentHandler = attachmentHandler; + public TaskData getTaskData(TaskRepository taskRepository, String taskId, IProgressMonitor monitor) + throws CoreException { + return null; } @Override - public Set<RepositoryTemplate> getTemplates() { - Set<RepositoryTemplate> templates = new HashSet<RepositoryTemplate>(); - RepositoryTemplate template = new RepositoryTemplate("Mock Template", REPOSITORY_URL, "utf-8", "1", "new", - "prefix", "query", "newAccountUrl", false, true); - templates.add(template); - return templates; + public boolean hasTaskChanged(TaskRepository taskRepository, ITask task, TaskData taskData) { + return false; } @Override - public RepositoryTaskData getLegacyTaskData(TaskRepository repository, String taskId, IProgressMonitor monitor) - throws CoreException { - return null; + public void updateTaskFromTaskData(TaskRepository taskRepository, ITask task, TaskData taskData) { } +// @Override +// public Set<RepositoryTemplate> getTemplates() { +// Set<RepositoryTemplate> templates = new HashSet<RepositoryTemplate>(); +// RepositoryTemplate template = new RepositoryTemplate("Mock Template", REPOSITORY_URL, "utf-8", "1", "new", +// "prefix", "query", "newAccountUrl", false, true); +// templates.add(template); +// return templates; +// } + } |