/*******************************************************************************
* Copyright (c) 2012 Tasktop Technologies and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.tests.data;
import junit.framework.TestCase;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskAttributeMapper;
import org.eclipse.mylyn.tasks.core.data.TaskCommentMapper;
import org.eclipse.mylyn.tasks.core.data.TaskData;
/**
* @author Steffen Pingel
*/
public class TaskAttributeMapperTest extends TestCase {
TaskRepository taskRepository = new TaskRepository("kind", "repository");
TaskAttributeMapper mapper = new TaskAttributeMapper(taskRepository);
TaskData data = new TaskData(mapper, "kind", "repository", "id");
public void testEqualsCommentId() {
TaskCommentMapper comment = new TaskCommentMapper();
comment.setCommentId("commentid");
comment.setNumber(1);
TaskAttribute attributeOld = data.getRoot().createAttribute("1");
comment.applyTo(attributeOld);
TaskAttribute attributeNew = data.getRoot().createAttribute("2");
comment.applyTo(attributeNew);
assertTrue(mapper.equals(attributeNew, attributeOld));
comment.setCommentId("commentid2");
comment.applyTo(attributeOld);
assertFalse("Expected not equals:\n" + attributeOld + "\n" + attributeNew,
mapper.equals(attributeNew, attributeOld));
}
public void testEqualsCommentMylyn37() {
TaskCommentMapper comment = new TaskCommentMapper();
comment.setNumber(1);
// Mylyn 3.7 before release
TaskAttribute attributeOld = data.getRoot().createAttribute("1");
comment.applyTo(attributeOld);
attributeOld.setValue("1");
// Mylyn 3.7 release
TaskAttribute attributeNew = data.getRoot().createAttribute("2");
comment.applyTo(attributeNew);
assertEquals("", attributeNew.getValue());
assertTrue("Expected equals:\n" + attributeOld + "\n" + attributeNew, mapper.equals(attributeNew, attributeOld));
assertFalse("Expected not equals:\n" + attributeOld + "\n" + attributeNew,
mapper.equals(attributeOld, attributeNew));
}
public void testEqualsCommentMylyn37CommentId() {
TaskCommentMapper comment = new TaskCommentMapper();
comment.setNumber(1);
comment.setCommentId("2");
// Mylyn 3.7 before release, but missing sub-attribute
TaskAttribute attributeOld = data.getRoot().createAttribute("1");
comment.applyTo(attributeOld);
attributeOld.setValue("1");
// Mylyn 3.7 release
TaskAttribute attributeNew = data.getRoot().createAttribute("2");
comment.applyTo(attributeNew);
assertEquals("2", attributeNew.getValue());
assertFalse("Expected not equals:\n" + attributeOld + "\n" + attributeNew,
mapper.equals(attributeNew, attributeOld));
// Mylyn 3.7 before release with ID sub-attribute
TaskAttribute idAttribute = attributeOld.createAttribute("task.common.comment.id");
idAttribute.setValue("2");
assertTrue("Expected equals:\n" + attributeOld + "\n" + attributeNew, mapper.equals(attributeNew, attributeOld));
// IDs should now be unequal
idAttribute.setValue("3");
assertFalse("Expected not equals:\n" + attributeOld + "\n" + attributeNew,
mapper.equals(attributeNew, attributeOld));
}
}