Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Davis2014-10-06 21:24:16 +0000
committerSam Davis2015-03-11 21:02:17 +0000
commitdd62414dd526d7a08da6f8f3ecd85dd52d049e2f (patch)
tree5e3d168f2af0714f415309137815bd33a6ff74a7 /org.eclipse.mylyn.tasks.tests/src/org
parent66369afb5c49a63829059cb2ec1d9663f2159833 (diff)
downloadorg.eclipse.mylyn.tasks-dd62414dd526d7a08da6f8f3ecd85dd52d049e2f.tar.gz
org.eclipse.mylyn.tasks-dd62414dd526d7a08da6f8f3ecd85dd52d049e2f.tar.xz
org.eclipse.mylyn.tasks-dd62414dd526d7a08da6f8f3ecd85dd52d049e2f.zip
446091: [api] allow clients to determine when the current user owns an
ITask Change-Id: Ie6fb5d4c27fd31be4f4127be7fc82e892b503466 Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=446091
Diffstat (limited to 'org.eclipse.mylyn.tasks.tests/src/org')
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java32
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/AbstractRepositoryConnectorTest.java49
2 files changed, 81 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java
index acf2dc7f1..7427efa02 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskMapperTest.java
@@ -17,6 +17,7 @@ import java.util.Map;
import junit.framework.TestCase;
+import org.eclipse.mylyn.internal.tasks.core.TaskTask;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttachmentMapper;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
@@ -215,4 +216,35 @@ public class TaskMapperTest extends TestCase {
}
+ public void testApplyOwnerAndId() throws Exception {
+ TaskTask task = new TaskTask("kind", "http://url", "1");
+ TaskAttribute assigneeAttribute = source.getTaskData().getRoot().createAttribute(TaskAttribute.USER_ASSIGNED);
+ assigneeAttribute.putOption("joel.user", "Joel K. User");
+ assigneeAttribute.putOption("jacob.user", "Jacob F. User");
+
+ assigneeAttribute.setValue("joel.user");
+ assertOwnerAndId(task, "joel.user", "Joel K. User");
+
+ assigneeAttribute.setValue("jacob.user");
+ assertOwnerAndId(task, "jacob.user", "Jacob F. User");
+
+ assigneeAttribute.putOption("jacob.user", "Jacob Frederick User");
+ assertOwnerAndId(task, "jacob.user", "Jacob Frederick User");
+
+ assigneeAttribute.clearOptions();
+ assertOwnerAndId(task, "jacob.user", "jacob.user");
+
+ assigneeAttribute.setValue("joel.user");
+ assertOwnerAndId(task, "joel.user", "joel.user");
+ }
+
+ private void assertOwnerAndId(TaskTask task, String ownerId, String owner) {
+ assertTrue(source.hasChanges(task));
+ assertTrue(source.applyTo(task));
+ assertEquals(owner, task.getOwner());
+ assertEquals(ownerId, task.getOwnerId());
+ assertFalse(source.hasChanges(task));
+ assertFalse(source.applyTo(task));
+ }
+
}
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/AbstractRepositoryConnectorTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/AbstractRepositoryConnectorTest.java
index c7b4d190c..06dd4940b 100644
--- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/AbstractRepositoryConnectorTest.java
+++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/core/AbstractRepositoryConnectorTest.java
@@ -11,8 +11,11 @@
package org.eclipse.mylyn.tasks.tests.core;
+import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
+import org.eclipse.mylyn.commons.net.AuthenticationType;
import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin;
import org.eclipse.mylyn.internal.tasks.ui.util.TasksUiInternal;
+import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.tests.connector.MockTask;
import org.eclipse.mylyn.tasks.tests.util.MockRepositoryConnectorTestCase;
@@ -49,4 +52,50 @@ public class AbstractRepositoryConnectorTest extends MockRepositoryConnectorTest
assertNull(TasksUiInternal.getTaskByUrl(""));
}
+ public void testIsOwnedByUser() throws Exception {
+ assertIsOwnedByUser("joel.user", "joel.user", "joel.user", true);
+ assertIsOwnedByUser("joel.user", "Joel K. User", "joel.user", true);
+ assertIsOwnedByUser("joel.user", null, "joel.user", true);
+ assertIsOwnedByUser("joel.user", "joel.user", "123", true);
+ assertIsOwnedByUser("joel.user", "joel.user", null, true);
+ assertIsOwnedByUser("joel.user", "Joel K. User", "123", false);
+ assertIsOwnedByUser("joel.user", "Joel K. User", null, false);
+ assertIsOwnedByUser("joel.user", null, "123", false);
+ assertIsOwnedByUser("joel.user", null, null, false);
+ assertIsOwnedByUser(null, null, null, false);
+ assertIsOwnedByUser(null, null, "123", false);
+ assertIsOwnedByUser(null, "Joel K. User", null, false);
+ assertIsOwnedByUser(null, "joel.user", "joel.user", false);
+ }
+
+ private void assertIsOwnedByUser(String repositoryUserName, String taskOwner, String taskOwnerId, boolean expected) {
+ // if one parameter is null, test both the null and empty string cases; if multiple are null, don't bother
+ // testing all possible combinations of null and empty
+ if (repositoryUserName == null) {
+ assertIsOwnedByUserHelper(null, taskOwner, taskOwnerId, expected);
+ assertIsOwnedByUserHelper("", taskOwner, taskOwnerId, expected);
+ } else if (taskOwner == null) {
+ assertIsOwnedByUserHelper(repositoryUserName, null, taskOwnerId, expected);
+ assertIsOwnedByUserHelper(repositoryUserName, "", taskOwnerId, expected);
+ } else if (taskOwnerId == null) {
+ assertIsOwnedByUserHelper(repositoryUserName, taskOwner, null, expected);
+ assertIsOwnedByUserHelper(repositoryUserName, taskOwner, "", expected);
+ } else {
+ assertIsOwnedByUserHelper(repositoryUserName, taskOwner, taskOwnerId, expected);
+ }
+ }
+
+ private void assertIsOwnedByUserHelper(String repositoryUserName, String taskOwner, String taskOwnerId,
+ boolean expected) {
+ TaskRepository repository = new TaskRepository(MockRepositoryWithUrl.CONNECTOR_KIND,
+ MockRepositoryWithUrl.REPOSITORY_URL);
+ if (repositoryUserName != null) {
+ repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials(repositoryUserName,
+ ""), false);
+ }
+ taskWithUrl.setOwner(taskOwner);
+ taskWithUrl.setOwnerId(taskOwnerId);
+ assertEquals(expected, connectorWithUrl.isOwnedByUser(repository, taskWithUrl));
+ }
+
}

Back to the top