View | Details | Raw Unified | Return to bug 288347 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/jira/tests/core/JiraTaskDataHandlerTest.java (+92 lines)
Lines 16-27 Link Here
16
import java.text.SimpleDateFormat;
16
import java.text.SimpleDateFormat;
17
import java.util.Collection;
17
import java.util.Collection;
18
import java.util.Date;
18
import java.util.Date;
19
import java.util.HashSet;
19
import java.util.List;
20
import java.util.List;
20
import java.util.Locale;
21
import java.util.Locale;
22
import java.util.Set;
21
23
22
import junit.framework.TestCase;
24
import junit.framework.TestCase;
23
25
24
import org.eclipse.core.runtime.NullProgressMonitor;
26
import org.eclipse.core.runtime.NullProgressMonitor;
27
import org.eclipse.mylyn.context.tests.support.TestUtil;
28
import org.eclipse.mylyn.context.tests.support.TestUtil.Credentials;
25
import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
29
import org.eclipse.mylyn.context.tests.support.TestUtil.PrivilegeLevel;
26
import org.eclipse.mylyn.internal.jira.core.IJiraConstants;
30
import org.eclipse.mylyn.internal.jira.core.IJiraConstants;
27
import org.eclipse.mylyn.internal.jira.core.JiraAttribute;
31
import org.eclipse.mylyn.internal.jira.core.JiraAttribute;
Lines 754-757 Link Here
754
		return taskData;
758
		return taskData;
755
	}
759
	}
756
760
761
	/**
762
	 * Add comment to a task which user doesn't have edit permission for.
763
	 * 
764
	 * @throws Exception
765
	 */
766
	public void testPostTaskDataCommentWithoutEditPermission() throws Exception {
767
		init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.USER);
768
769
		JiraIssue issue = JiraTestUtil.createIssue(client, "testWithoutEditPermission");
770
771
		TaskData taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
772
		taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).setValue("new summary");
773
		taskData.getRoot().getAttribute(JiraAttribute.COMMENT_NEW.id()).setValue("comment");
774
		dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.SUMMARY,
775
				JiraAttribute.COMMENT_NEW), new NullProgressMonitor());
776
		assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY));
777
778
		taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
779
		assertEquals("new summary", taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).getValue());
780
		ITask task = JiraTestUtil.createTask(repository, taskData.getTaskId());
781
		List<ITaskComment> comments = JiraTestUtil.getTaskComments(task);
782
		assertEquals(1, comments.size());
783
		assertEquals("comment", comments.get(0).getText());
784
		assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY));
785
786
		setUp();
787
		init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.READ_ONLY);
788
789
		taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
790
		assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY));
791
792
		taskData.getRoot().getAttribute(JiraAttribute.COMMENT_NEW.id()).setValue("new comment");
793
794
		dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.COMMENT_NEW),
795
				new NullProgressMonitor());
796
797
		taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
798
		assertEquals("new summary", taskData.getRoot().getAttribute(JiraAttribute.SUMMARY.id()).getValue());
799
		task = JiraTestUtil.createTask(repository, taskData.getTaskId());
800
		comments = JiraTestUtil.getTaskComments(task);
801
		assertEquals(2, comments.size());
802
		assertEquals("comment", comments.get(0).getText());
803
		assertEquals("new comment", comments.get(1).getText());
804
		assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY));
805
	}
806
807
	private Set<TaskAttribute> buildChanged(TaskAttribute root, JiraAttribute... attrs) {
808
		Set<TaskAttribute> changed = new HashSet<TaskAttribute>();
809
		for (JiraAttribute ja : attrs) {
810
			changed.add(root.getAttribute(ja.id()));
811
		}
812
		return changed;
813
	}
814
815
	/**
816
	 * Add comment to a task which user doesn't have edit permission for.
817
	 * 
818
	 * @throws Exception
819
	 */
820
	public void testPostTaskDataAssignWithoutEditPermission() throws Exception {
821
		init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.USER);
822
823
		Credentials userCredentials = TestUtil.readCredentials(PrivilegeLevel.USER);
824
		JiraIssue issue = JiraTestUtil.createIssue(client, "testWithoutEditPermission");
825
826
		TaskData taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
827
		taskData.getRoot().getAttribute(JiraAttribute.USER_ASSIGNED.id()).setValue("-1");
828
829
		dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.USER_ASSIGNED),
830
				new NullProgressMonitor());
831
		assertNull(taskData.getRoot().getAttribute(IJiraConstants.ATTRIBUTE_READ_ONLY));
832
833
		setUp();
834
		init(JiraTestConstants.JIRA_LATEST_URL, PrivilegeLevel.READ_ONLY);
835
836
		taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
837
838
		taskData.getRoot().getAttribute(JiraAttribute.USER_ASSIGNED.id()).setValue(userCredentials.username);
839
840
		dataHandler.postTaskData(repository, taskData, buildChanged(taskData.getRoot(), JiraAttribute.USER_ASSIGNED),
841
				new NullProgressMonitor());
842
843
		taskData = dataHandler.getTaskData(repository, issue.getId(), new NullProgressMonitor());
844
		assertEquals(userCredentials.username, taskData.getRoot()
845
				.getAttribute(JiraAttribute.USER_ASSIGNED.id())
846
				.getValue());
847
	}
848
757
}
849
}

Return to bug 288347