Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn')
-rw-r--r--org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerXmlRpcTest.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerXmlRpcTest.java b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerXmlRpcTest.java
index 1d5d6aa0a..05eb282ff 100644
--- a/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerXmlRpcTest.java
+++ b/org.eclipse.mylyn.trac.tests/src/org/eclipse/mylyn/trac/tests/core/TracTaskDataHandlerXmlRpcTest.java
@@ -377,8 +377,9 @@ public class TracTaskDataHandlerXmlRpcTest extends TestCase {
operation = taskData.getAttributeMapper().getTaskOperation(operations.get(2));
assertEquals("resolve", operation.getOperationId());
assertNotNull(operation.getLabel());
- String associatedId = operation.getTaskAttribute().getMetaData().getValue(
- TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID);
+ String associatedId = operation.getTaskAttribute()
+ .getMetaData()
+ .getValue(TaskAttribute.META_ASSOCIATED_ATTRIBUTE_ID);
assertNotNull(associatedId);
if (hasReassign) {
@@ -409,4 +410,24 @@ public class TracTaskDataHandlerXmlRpcTest extends TestCase {
assertEquals("", attribute.getValue());
}
+ public void testPostTaskDataMidAirCollision() throws Exception {
+ TracTicket ticket = TracTestUtil.createTicket(client, "midAirCollision");
+ TaskData taskData = taskDataHandler.getTaskData(repository, ticket.getId() + "", new NullProgressMonitor());
+ TaskAttribute attribute = taskData.getRoot().getMappedAttribute(TaskAttribute.PRIORITY);
+ attribute.setValue("blocker");
+
+ // change ticket in repository
+ ticket.putBuiltinValue(Key.PRIORITY, "trivial");
+ client.updateTicket(ticket, "changing priority", null);
+
+ // submit conflicting change
+ try {
+ taskDataHandler.postTaskData(repository, taskData, null, new NullProgressMonitor());
+ fail("Expected CoreException due to mid-air collision");
+ } catch (CoreException e) {
+ assertEquals(RepositoryStatus.createCollisionError(repository.getRepositoryUrl(), TracCorePlugin.ID_PLUGIN)
+ .getMessage(), e.getStatus().getMessage());
+ }
+ }
+
}

Back to the top