blob: 3012056f2728448fded3ad7f92cd5825353941ef [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2014 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.bugzilla.tests;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.mylyn.bugzilla.tests.support.BugzillaFixture;
import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
import org.eclipse.mylyn.commons.net.AuthenticationType;
import org.eclipse.mylyn.commons.sdk.util.CommonTestUtil.PrivilegeLevel;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaAttribute;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaClient;
import org.eclipse.mylyn.internal.bugzilla.core.BugzillaRepositoryConnector;
import org.eclipse.mylyn.internal.bugzilla.core.RepositoryConfiguration;
import org.eclipse.mylyn.tasks.core.TaskRepository;
import org.eclipse.mylyn.tasks.core.data.TaskAttribute;
import org.eclipse.mylyn.tasks.core.data.TaskData;
import org.eclipse.mylyn.tasks.core.data.TaskMapper;
/**
* @author Rob Elves
* @author Mik Kersten
*/
public class RepositoryReportFactoryTest extends TestCase {
TaskRepository repository;
BugzillaClient client;
BugzillaRepositoryConnector connector;
@Override
protected void setUp() throws Exception {
repository = BugzillaFixture.current().repository();
client = BugzillaFixture.current().client();
connector = BugzillaFixture.current().connector();
}
public void testInvalidCredentials() throws Exception {
try {
client.logout(new NullProgressMonitor());
// use the client's repository when setting credentials below
repository = client.getTaskRepository();
repository.setCredentials(AuthenticationType.REPOSITORY,
new AuthenticationCredentials("invalid", "invalid"), false);
connector.getTaskData(repository, "1", new NullProgressMonitor());
fail("CoreException expected but not found");
} catch (CoreException e) {
if (!e.getStatus().getMessage().startsWith("Unable to login")) {
throw e;
}
}
repository.flushAuthenticationCredentials();
}
public void testBugNotFound() throws Exception {
try {
connector.getClientManager().repositoryAdded(repository);
connector.getTaskData(repository, "-1", new NullProgressMonitor());
fail("Expected CoreException");
} catch (CoreException e) {
if (!e.getStatus().getMessage().startsWith("Repository error from")) {
throw e;
}
}
}
public void testPostingAndReadingAttributes() throws Exception {
RepositoryConfiguration repositoryConfiguration = connector.getRepositoryConfiguration(repository.getRepositoryUrl());
List<String> priorities = repositoryConfiguration.getOptionValues(BugzillaAttribute.PRIORITY);
String priority = priorities.get(priorities.size() > 0 ? priorities.size() - 1 : 0);
TaskData data = BugzillaFixture.current().createTask(PrivilegeLevel.USER, "testPostingAndReading() summary",
"testPostingAndReading() description");
data.getRoot().getMappedAttribute(TaskAttribute.COMPONENT).setValue("ManualC2");
data.getRoot().getMappedAttribute(TaskAttribute.PRIORITY).setValue(priority);
data.getRoot().getMappedAttribute(TaskAttribute.SEVERITY).setValue("enhancement");
data.getRoot().getMappedAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).setValue("PC");
data.getRoot().getMappedAttribute(BugzillaAttribute.OP_SYS.getKey()).setValue("Linux");
data.getRoot().getMappedAttribute(BugzillaAttribute.VERSION.getKey()).setValue("R2.0");
// data.getRoot().getMappedAttribute(BugzillaAttribute.DEPENDSON.getKey()).setValue("6, 7");
// data.getRoot().getMappedAttribute(BugzillaAttribute.BLOCKED.getKey()).setValue("13, 14");
BugzillaFixture.current().submitTask(data, client);
data = BugzillaFixture.current().getTask(data.getTaskId(), client);
assertNotNull(data);
assertEquals("ManualC2", data.getRoot().getMappedAttribute(TaskAttribute.COMPONENT).getValue());
assertEquals(priority, data.getRoot().getMappedAttribute(TaskAttribute.PRIORITY).getValue());
assertEquals("enhancement", data.getRoot().getMappedAttribute(TaskAttribute.SEVERITY).getValue());
assertEquals("PC", data.getRoot().getMappedAttribute(BugzillaAttribute.REP_PLATFORM.getKey()).getValue());
assertEquals("Linux", data.getRoot().getMappedAttribute(BugzillaAttribute.OP_SYS.getKey()).getValue());
assertEquals("R2.0", data.getRoot().getMappedAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
assertEquals("R2.0", data.getRoot().getMappedAttribute(BugzillaAttribute.VERSION.getKey()).getValue());
// assertEquals("6, 7", root.getAttribute(BugzillaAttribute.BLOCKED.getKey()).getValue());
// assertEquals("13, 14", root.getAttribute(BugzillaAttribute.BLOCKED.getKey()).getValue());
TaskMapper mapper = new TaskMapper(data);
assertEquals("testPostingAndReading() summary", mapper.getSummary());
assertEquals("testPostingAndReading() description", mapper.getDescription());
assertEquals("ManualTest", mapper.getProduct());
}
// FIXME: Test posting and retrieval of time values
// public void testTimeTracking222() throws Exception {
// assertEquals("7.50", report.getRoot().getAttribute(BugzillaAttribute.ESTIMATED_TIME.getKey()).getValue());
// assertEquals("4.00", report.getRoot().getAttribute(BugzillaAttribute.ACTUAL_TIME.getKey()).getValue());
// assertEquals("3.00", report.getRoot().getAttribute(BugzillaAttribute.REMAINING_TIME.getKey()).getValue());
// assertEquals("2005-03-04", report.getRoot().getAttribute(BugzillaAttribute.DEADLINE.getKey()).getValue());
// }
public void testDeltaTsTruncation() {
String ts1 = "2006-07-06 03:22:08 0900";
String ts1_truncated = "2006-07-06 03:22:08";
assertEquals(ts1_truncated, BugzillaClient.stripTimeZone(ts1));
String ts2 = "2006-07-06 03:22:08";
String ts2_truncated = "2006-07-06 03:22:08";
assertEquals(ts2_truncated, BugzillaClient.stripTimeZone(ts2));
String ts3 = "2006-07-06 03:22:08 PST";
String ts3_truncated = "2006-07-06 03:22:08";
assertEquals(ts3_truncated, BugzillaClient.stripTimeZone(ts3));
}
}