diff options
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.java | 183 |
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))); + } + +} |