diff options
author | Sam Davis | 2014-10-06 21:24:16 +0000 |
---|---|---|
committer | Sam Davis | 2015-03-11 21:02:17 +0000 |
commit | dd62414dd526d7a08da6f8f3ecd85dd52d049e2f (patch) | |
tree | 5e3d168f2af0714f415309137815bd33a6ff74a7 /org.eclipse.mylyn.tasks.tests/src/org | |
parent | 66369afb5c49a63829059cb2ec1d9663f2159833 (diff) | |
download | org.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')
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)); + } + } |