public void testMergeWithEquivalentAddPresent() throws Exception { delta.addChange(Add.create(ssc, 2)); remove.setChild(ssc); remove.mergeInto(delta, NOW); assertEquals("Remove should have canceled add", 0, delta.getChanges().size()); }
public void testMergeWithAddFollowedByReorderCancelsBoth() throws Exception { delta.addChange(Add.create(ssc, 2)); Reorder.create(ssc, 2, 1).mergeInto(delta, NOW); remove.setChild(ssc); remove.mergeInto(delta, NOW); assertEquals("Remove should have canceled add and reorder", 0, delta.getChanges().size()); }
public void testMergeTwoIntoDeltaWithIndexesThenRemoveOne() throws Exception { StudySegment retained0 = setId(17, new StudySegment()); StudySegment retained1 = setId(18, new StudySegment()); StudySegment retained2 = setId(19, new StudySegment()); delta.addChange(Add.create(retained0, 2)); delta.addChange(Add.create(ssc, 3)); delta.addChange(Add.create(retained1, 4)); delta.addChange(Add.create(retained2, 5)); remove.setChild(ssc); remove.mergeInto(delta, NOW); assertEquals("Wrong number of changes in delta", 3, delta.getChanges().size()); Add add0 = (Add) delta.getChanges().get(0); Add add1 = (Add) delta.getChanges().get(1); Add add2 = (Add) delta.getChanges().get(2); assertAdd("Index for earlier retained add updated", retained0, 2, add0); assertChangeTime("Unchanged add time incorrectly updated", null, add0); assertAdd("Index for later retained add not updated", retained1, 3, add1); assertChangeTime("Updated add time not updated", NOW, add1); assertAdd("Index for later retained add not updated", retained2, 4, add2); assertChangeTime("Updated add time not updated", NOW, add2); }