Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java')
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java183
1 files changed, 183 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java
new file mode 100644
index 000000000..ffdd83137
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskDataManagerTest.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * Copyright (c) 2004 - 2006 Mylar committers 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
+ *******************************************************************************/
+
+package org.eclipse.mylar.tasks.tests;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import junit.framework.TestCase;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.mylar.internal.tasks.ui.TaskDataManager;
+import org.eclipse.mylar.tasks.core.AbstractRepositoryTask;
+import org.eclipse.mylar.tasks.core.RepositoryOperation;
+import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute;
+import org.eclipse.mylar.tasks.core.RepositoryTaskData;
+import org.eclipse.mylar.tasks.core.TaskComment;
+import org.eclipse.mylar.tasks.tests.connector.MockAttributeFactory;
+import org.eclipse.mylar.tasks.tests.connector.MockRepositoryConnector;
+import org.eclipse.mylar.tasks.ui.TasksUiPlugin;
+
+/**
+ * @author Rob Elves
+ */
+public class TaskDataManagerTest extends TestCase {
+
+ TaskDataManager offlineTaskDataManager;
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ offlineTaskDataManager = TasksUiPlugin.getDefault().getTaskDataManager();
+ offlineTaskDataManager.clear();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ if (offlineTaskDataManager != null) {
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.save();
+ }
+ }
+
+ public void testAdd() throws CoreException {
+ RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
+ offlineTaskDataManager.put(taskData);
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ }
+
+ public void testSave() throws CoreException, IOException, ClassNotFoundException {
+ RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
+ offlineTaskDataManager.put(taskData);
+ taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND,
+ MockRepositoryConnector.REPOSITORY_URL, "2");
+ offlineTaskDataManager.put(taskData);
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ offlineTaskDataManager.save();
+ offlineTaskDataManager.clear();
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ offlineTaskDataManager.reloadFromFile();
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ }
+
+ public void testGetNextOfflineBugId() throws IOException, ClassNotFoundException {
+ assertEquals("1", offlineTaskDataManager.getNextLocalTaskId());
+ assertEquals("2", offlineTaskDataManager.getNextLocalTaskId());
+ offlineTaskDataManager.save();
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.reloadFromFile();
+ assertEquals("3", offlineTaskDataManager.getNextLocalTaskId());
+ }
+
+ public void testGetTaskData() throws CoreException, IOException, ClassNotFoundException {
+ RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
+ taskData.setNewComment("version 1");
+ offlineTaskDataManager.put(taskData);
+ assertNull(offlineTaskDataManager.getOldTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND,
+ MockRepositoryConnector.REPOSITORY_URL, "1");
+ taskData.setNewComment("version 2");
+ offlineTaskDataManager.put(taskData);
+ offlineTaskDataManager.save();
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.reloadFromFile();
+ assertEquals("version 2", offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")
+ .getNewComment());
+ assertEquals("version 1", offlineTaskDataManager.getOldTaskData(MockRepositoryConnector.REPOSITORY_URL, "1")
+ .getNewComment());
+ }
+
+ public void testRemoveRepositoryTaskData() throws CoreException, IOException, ClassNotFoundException {
+ RepositoryTaskData taskData = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
+ offlineTaskDataManager.put(taskData);
+ taskData = new RepositoryTaskData(new MockAttributeFactory(), MockRepositoryConnector.REPOSITORY_KIND,
+ MockRepositoryConnector.REPOSITORY_URL, "2");
+ offlineTaskDataManager.put(taskData);
+ offlineTaskDataManager.save();
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ offlineTaskDataManager.remove(taskData);
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ offlineTaskDataManager.save();
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.reloadFromFile();
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ }
+
+ public void testRemoveListOfRepositoryTaskData() throws CoreException, IOException, ClassNotFoundException {
+ RepositoryTaskData taskData1 = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "1");
+ offlineTaskDataManager.put(taskData1);
+ RepositoryTaskData taskData2 = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, "2");
+ offlineTaskDataManager.put(taskData2);
+ offlineTaskDataManager.save();
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNotNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ ArrayList<RepositoryTaskData> list = new ArrayList<RepositoryTaskData>();
+ list.add(taskData1);
+ list.add(taskData2);
+ offlineTaskDataManager.remove(list);
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ offlineTaskDataManager.save();
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.reloadFromFile();
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "1"));
+ assertNull(offlineTaskDataManager.getTaskData(MockRepositoryConnector.REPOSITORY_URL, "2"));
+ }
+
+ public void testLargeDataSet() throws Exception {
+ RepositoryTaskData taskData;
+ for(int x = 1; x < 1000; x++) {
+ taskData = new RepositoryTaskData(new MockAttributeFactory(),
+ MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL, ""+x);
+
+
+ for(int y = 1; y < 60; y++) {
+ RepositoryTaskAttribute attribute = new RepositoryTaskAttribute(""+y, ""+y, false);
+ for(int z = 1; z < 10; z++) {
+ attribute.addOption(""+z, ""+z);
+ attribute.addValue(""+z);
+ }
+ taskData.addAttribute(""+y, attribute);
+ }
+
+ for(int y = 1; y < 5; y++) {
+ RepositoryOperation op = new RepositoryOperation(""+y, ""+y);
+ taskData.addOperation(op);
+ }
+
+ for(int y = 1; y < 30; y++) {
+ TaskComment comment = new TaskComment(new MockAttributeFactory(), taskData, y);
+ taskData.addComment(comment);
+ }
+
+ offlineTaskDataManager.put(taskData);
+ offlineTaskDataManager.put(taskData);
+ }
+ offlineTaskDataManager.save();
+ System.err.println("Saved");
+ File file = TasksUiPlugin.getDefault().getOfflineReportsFilePath().toFile();
+ System.err.println(file.length());
+ offlineTaskDataManager.clear();
+ offlineTaskDataManager.reloadFromFile();
+ assertNotNull(offlineTaskDataManager.getOldTaskData(AbstractRepositoryTask.getHandle(MockRepositoryConnector.REPOSITORY_URL, 400)));
+ }
+
+}

Back to the top