Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2007-07-24 05:59:52 +0000
committermkersten2007-07-24 05:59:52 +0000
commit80e091efe4af02c7ea6bc6b0e12dd62f0b545b66 (patch)
treee9a33f8771da017984d08aedf158da3dce0aeb37 /org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java
parent20e64bffb240483055288a94c26403c069d31c7d (diff)
downloadorg.eclipse.mylyn.tasks-80e091efe4af02c7ea6bc6b0e12dd62f0b545b66.tar.gz
org.eclipse.mylyn.tasks-80e091efe4af02c7ea6bc6b0e12dd62f0b545b66.tar.xz
org.eclipse.mylyn.tasks-80e091efe4af02c7ea6bc6b0e12dd62f0b545b66.zip
ASSIGNED - bug 189518: [patch] support import/export of Task List queries
https://bugs.eclipse.org/bugs/show_bug.cgi?id=189518
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java')
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/QueryExportImportTest.java175
1 files changed, 167 insertions, 8 deletions
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 ee934bdf2..2577ddf0f 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
@@ -13,14 +13,17 @@ package org.eclipse.mylyn.tasks.tests;
import java.io.File;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import junit.framework.TestCase;
import org.eclipse.mylyn.tasks.core.AbstractRepositoryQuery;
import org.eclipse.mylyn.tasks.core.AbstractTaskListFactory;
-import org.eclipse.mylyn.tasks.core.TaskList;
+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.MockTaskListFactory;
import org.eclipse.mylyn.tasks.ui.TasksUiPlugin;
@@ -46,6 +49,7 @@ public class QueryExportImportTest extends TestCase {
dest.mkdir();
}
assertTrue(dest.exists());
+ TasksUiPlugin.getSynchronizationManager().setForceSyncExec(true);
}
@Override
@@ -55,6 +59,7 @@ public class QueryExportImportTest extends TestCase {
removeFiles(dest);
dest.delete();
assertFalse(dest.exists());
+ TasksUiPlugin.getSynchronizationManager().setForceSyncExec(false);
}
public void testExportImportQuery() {
@@ -62,23 +67,177 @@ public class QueryExportImportTest extends TestCase {
externalizers.add(new MockTaskListFactory());
TasksUiPlugin.getTaskListManager().getTaskListWriter().setDelegateExternalizers(externalizers);
- MockRepositoryQuery query = new MockRepositoryQuery("Test Query");
+ List<AbstractRepositoryQuery> queries = new ArrayList<AbstractRepositoryQuery>();
+
+ MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
+ MockRepositoryQuery query2 = new MockRepositoryQuery("Test Query 2");
+ queries.add(query1);
+ queries.add(query2);
File outFile = new File(dest, "test-query.xml.zip");
- TasksUiPlugin.getTaskListManager().getTaskListWriter().writeQuery(query, outFile);
+ TasksUiPlugin.getTaskListManager().getTaskListWriter().writeQueries(queries, outFile);
assertTrue(outFile.exists());
- TaskList taskList = TasksUiPlugin.getTaskListManager().resetTaskList();
-
File inFile = new File(dest, "test-query.xml.zip");
- TasksUiPlugin.getTaskListManager().getTaskListWriter().readQueries(taskList, inFile);
- Set<AbstractRepositoryQuery> queries = taskList.getQueries();
- assertEquals("1 Query is imported", 1, queries.size());
+ List<AbstractRepositoryQuery> resultQueries = TasksUiPlugin.getTaskListManager().getTaskListWriter().readQueries(
+ inFile);
+ assertEquals("2 Queries is imported", 2, resultQueries.size());
+ }
+
+ public void testImportedQueriesNameConflictResolving1() {
+ // prepare for test
+ TasksUiPlugin.getTaskListManager().resetTaskList();
+ TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
+ TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ // create test data
+ List<AbstractRepositoryQuery> queries = new ArrayList<AbstractRepositoryQuery>();
+
+ MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
+ query1.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query2 = new MockRepositoryQuery("Test Query");
+ query2.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query3 = new MockRepositoryQuery("Test Query");
+ query3.setRepositoryUrl(repository.getUrl());
+
+ queries.add(query1);
+ queries.add(query2);
+ queries.add(query3);
+
+ // run tested functionality
+ TasksUiPlugin.getTaskListManager().insertQueries(queries);
+
+ // extract results
+ Set<AbstractRepositoryQuery> queriesSet = TasksUiPlugin.getTaskListManager().getTaskList().getQueries();
+ Map<String, AbstractRepositoryQuery> queriesMap = new HashMap<String, AbstractRepositoryQuery>();
+ for (AbstractRepositoryQuery query : queriesSet) {
+ queriesMap.put(query.getHandleIdentifier(), query);
+ }
+
+ // check that the actual result is correct
+ assertTrue("'Test Query' query inserted", queriesMap.containsKey("Test Query"));
+ assertTrue("'Test Query[1]' query inserted", queriesMap.containsKey("Test Query[1]"));
+ assertTrue("'Test Query[2]' query inserted", queriesMap.containsKey("Test Query[2]"));
}
+
+ public void testImportedQueriesNameConflictResolving2() {
+ // prepare for test
+ TasksUiPlugin.getTaskListManager().resetTaskList();
+ TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
+ TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ // create test data
+ List<AbstractRepositoryQuery> queries = new ArrayList<AbstractRepositoryQuery>();
+
+ MockRepositoryQuery query1 = new MockRepositoryQuery("Test2");
+ query1.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query2 = new MockRepositoryQuery("Test2[1]");
+ query2.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query3 = new MockRepositoryQuery("Test2");
+ query3.setRepositoryUrl(repository.getUrl());
+
+ queries.add(query1);
+ queries.add(query2);
+ queries.add(query3);
+
+ // run tested functionality
+ TasksUiPlugin.getTaskListManager().insertQueries(queries);
+
+ // extract results
+ Set<AbstractRepositoryQuery> queriesSet = TasksUiPlugin.getTaskListManager().getTaskList().getQueries();
+ Map<String, AbstractRepositoryQuery> queriesMap = new HashMap<String, AbstractRepositoryQuery>();
+ for (AbstractRepositoryQuery query : queriesSet) {
+ queriesMap.put(query.getHandleIdentifier(), query);
+ }
+
+ // check that the actual result is correct
+ assertTrue("'Test2' query inserted", queriesMap.containsKey("Test2"));
+ assertTrue("'Test2[1]' query inserted", queriesMap.containsKey("Test2[1]"));
+ assertTrue("'Test2[2]' query inserted", queriesMap.containsKey("Test2[2]"));
+
+ }
+ public void testImportedBadQueriesNameConflictResolving() {
+ // prepare for test
+ TasksUiPlugin.getTaskListManager().resetTaskList();
+ TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
+ TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ // create test data
+ List<AbstractRepositoryQuery> queries = new ArrayList<AbstractRepositoryQuery>();
+
+ MockRepositoryQuery query1 = new MockRepositoryQuery("Test[-10]");
+ query1.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query2 = new MockRepositoryQuery("Test[ABC]");
+ query2.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query3 = new MockRepositoryQuery("Test[1]");
+ query3.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query4 = new MockRepositoryQuery("Test");
+ query4.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query5 = new MockRepositoryQuery("Test");
+ query5.setRepositoryUrl(repository.getUrl());
+
+ queries.add(query1);
+ queries.add(query2);
+ queries.add(query3);
+ queries.add(query4);
+ queries.add(query5);
+
+ // run tested functionality
+ TasksUiPlugin.getTaskListManager().insertQueries(queries);
+
+ // extract results
+ Set<AbstractRepositoryQuery> queriesSet = TasksUiPlugin.getTaskListManager().getTaskList().getQueries();
+ Map<String, AbstractRepositoryQuery> queriesMap = new HashMap<String, AbstractRepositoryQuery>();
+ for (AbstractRepositoryQuery query : queriesSet) {
+ queriesMap.put(query.getHandleIdentifier(), query);
+ }
+
+ // check that the actual result is correct
+ assertTrue("'Test[-10]' query inserted", queriesMap.containsKey("Test[-10]"));
+ assertTrue("'Test[ABC]' query inserted", queriesMap.containsKey("Test[ABC]"));
+ assertTrue("'Test[1]' query inserted", queriesMap.containsKey("Test[1]"));
+ assertTrue("'Test' query inserted", queriesMap.containsKey("Test"));
+ assertTrue("Another 'Test' query inserted", queriesMap.containsKey("Test[2]"));
+ }
+
+ public void testImportedBadQueries() {
+ // prepare for test
+ TasksUiPlugin.getTaskListManager().resetTaskList();
+ TaskRepository repository = new TaskRepository(MockRepositoryConnector.REPOSITORY_KIND, MockRepositoryConnector.REPOSITORY_URL);
+ TasksUiPlugin.getRepositoryManager().addRepository(repository, TasksUiPlugin.getDefault().getRepositoriesFilePath());
+
+ // create test data
+ List<AbstractRepositoryQuery> queries = new ArrayList<AbstractRepositoryQuery>();
+
+ MockRepositoryQuery query1 = new MockRepositoryQuery("Test Query");
+ query1.setRepositoryUrl(repository.getUrl());
+ MockRepositoryQuery query2 = new MockRepositoryQuery("Bad Query");
+ query2.setRepositoryUrl("bad url");
+
+ queries.add(query1);
+ queries.add(query2);
+
+ // run tested functionality
+ List<AbstractRepositoryQuery> badQueries = TasksUiPlugin.getTaskListManager().insertQueries(queries);
+
+ // extract results
+ Set<AbstractRepositoryQuery> queriesSet = TasksUiPlugin.getTaskListManager().getTaskList().getQueries();
+ Map<String, AbstractRepositoryQuery> queriesMap = new HashMap<String, AbstractRepositoryQuery>();
+ for (AbstractRepositoryQuery query : queriesSet) {
+ queriesMap.put(query.getHandleIdentifier(), query);
+ }
+
+ // check that the actual result is correct
+ assertEquals("There is a bad query", 1, badQueries.size());
+ assertEquals(query2, badQueries.get(0));
+ assertTrue("'Test Query' query inserted", queriesMap.containsKey("Test Query"));
+ }
+
+
private void removeFiles(File root) {
if (root.isDirectory()) {
for (File file : root.listFiles()) {

Back to the top