/******************************************************************************* * 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.ui; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.mylyn.commons.net.AuthenticationCredentials; import org.eclipse.mylyn.commons.net.AuthenticationType; import org.eclipse.mylyn.internal.tasks.core.TaskComment; import org.eclipse.mylyn.internal.tasks.core.TaskTask; import org.eclipse.mylyn.internal.tasks.ui.TasksUiPlugin; import org.eclipse.mylyn.tasks.core.AbstractRepositoryConnector; import org.eclipse.mylyn.tasks.core.ITask; import org.eclipse.mylyn.tasks.core.ITaskComment; 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.TaskData; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnector; import org.eclipse.mylyn.tasks.tests.connector.MockRepositoryConnectorUi; import org.eclipse.mylyn.tasks.tests.connector.MockTask; import org.eclipse.mylyn.tasks.ui.AbstractRepositoryConnectorUi; import org.eclipse.mylyn.tasks.ui.TasksUiImages; import junit.framework.TestCase; /** * @author Benjamin Muskalla */ public class AbstractRepositoryConnectorUiTest extends TestCase { private AbstractRepositoryConnectorUi connectorUi; private TaskRepository repository; private TaskAttribute commentAttribute; private MockTask task; @Override protected void setUp() throws Exception { AbstractRepositoryConnector connector = new MockRepositoryConnector(); connectorUi = new MockRepositoryConnectorUi(connector); repository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, MockRepositoryConnector.REPOSITORY_URL); task = new MockTask("1"); TaskAttributeMapper mapper = new TaskAttributeMapper(repository); TaskData taskData = new TaskData(mapper, MockRepositoryConnector.CONNECTOR_KIND, MockRepositoryConnector.REPOSITORY_URL, "1"); commentAttribute = taskData.getRoot().createAttribute("comment"); } public void testGetReplyTextDescription() throws Exception { ITask task = new TaskTask("abc", "http://eclipse.org/mylyn", "1"); String replyText = connectorUi.getReplyText(null, task, null, false); assertEquals("(In reply to comment #0)", replyText); } public void testGetReplyTextSpecificComment() throws Exception { ITaskComment taskComment = new TaskComment(repository, task, commentAttribute) { @Override public int getNumber() { return 13; } }; String replyText = connectorUi.getReplyText(null, task, taskComment, false); assertEquals("(In reply to comment #13)", replyText); } public void testGetReplyTextSpecificCommentOnTask() throws Exception { ITaskComment taskComment = new TaskComment(repository, task, commentAttribute) { @Override public int getNumber() { return 13; } }; String replyText = connectorUi.getReplyText(null, task, taskComment, true); assertEquals("(In reply to 1 comment #13)", replyText); } public void testGetImageDescriptor() { ITask task = new TaskTask(MockRepositoryConnector.CONNECTOR_KIND, "http://connector.url", "1"); task.setOwner("TaskOwner"); ImageDescriptor desc = connectorUi.getImageDescriptor(task); assertNotNull(desc); assertEquals(TasksUiImages.TASK, desc); } public void testGetImageDescriptorOwnedByMe() { TaskRepository repository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, "http://connector.url"); repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("RepoUser", "SecretPassword"), false); try { TasksUiPlugin.getRepositoryManager().addRepository(repository); ITask task = new TaskTask(MockRepositoryConnector.CONNECTOR_KIND, "http://connector.url", "1"); task.setOwner("RepoUser"); ImageDescriptor desc = connectorUi.getImageDescriptor(task); assertNotNull(desc); assertEquals(TasksUiImages.TASK_OWNED, desc); } finally { TasksUiPlugin.getRepositoryManager().removeRepository(repository); } } public void testGetImageDescriptorOwnedNotByMe() { TaskRepository repository = new TaskRepository(MockRepositoryConnector.CONNECTOR_KIND, "http://connector.url"); repository.setCredentials(AuthenticationType.REPOSITORY, new AuthenticationCredentials("RepoUser", "SecretPassword"), false); try { TasksUiPlugin.getRepositoryManager().addRepository(repository); ITask task = new TaskTask(MockRepositoryConnector.CONNECTOR_KIND, "http://connector.url", "1"); task.setOwner("AnotherRepoUser"); ImageDescriptor desc = connectorUi.getImageDescriptor(task); assertNotNull(desc); assertEquals(TasksUiImages.TASK, desc); } finally { TasksUiPlugin.getRepositoryManager().removeRepository(repository); } } }