Update JIRA integration tests, set socket timeout of 10000ms. Some cleanups in logging and task status handling.

This commit is contained in:
Mikhail Golubev
2014-01-13 13:02:29 +04:00
parent c026100d94
commit c584766d9b
3 changed files with 12 additions and 20 deletions
@@ -96,16 +96,10 @@ public abstract class JiraRestApi {
return;
}
final String transitionsUrl = myRepository.getUrl() + REST_API_PATH_SUFFIX + "/issue/" + task.getId() + "/transitions";
LOG.debug(String.format("Transition destination: %s, request: %s", state, requestBody));
LOG.debug(String.format("Transition: %s -> %s, request: %s", task.getState(), state, requestBody));
final PostMethod method = new PostMethod(transitionsUrl);
method.setRequestEntity(new StringRequestEntity(requestBody, "application/json", "utf-8"));
try {
myRepository.executeMethod(method);
}
catch (Exception e) {
LOG.warn(String.format("Transition destination: %s, server URL: %s", state, myRepository.getUrl()), e);
throw e;
}
myRepository.executeMethod(method);
}
@Nullable
@@ -17,14 +17,10 @@ package com.intellij.tasks.jira.model;
import org.jetbrains.annotations.NotNull;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Mikhail Golubev
*/
public class JiraStatus {
private static final Pattern ID_PATTERN = Pattern.compile(".*/(\\d+)/?$");
private String id;
private String self;
private String name;
@@ -38,15 +34,14 @@ public class JiraStatus {
/**
* Status id is necessary to determine issue status regardless of the language
* used in JIRA installation. However it omitted in case of REST API version 2.0.alpha1.
* Anyway it still may be extracted from status URL which always presents.
* Anyway it still may be extracted from status URL which is always available.
*/
@NotNull
public String getId() {
if (id == null) {
Matcher m = ID_PATTERN.matcher(self);
if (m.matches()) {
return m.group(1);
}
String[] parts = self.split("/");
assert parts.length > 0;
id = parts[parts.length - 1];
}
return id;
}
@@ -18,6 +18,7 @@ package com.intellij.tasks.integration;
import com.intellij.tasks.Task;
import com.intellij.tasks.TaskManagerTestCase;
import com.intellij.tasks.TaskState;
import com.intellij.tasks.config.TaskSettings;
import com.intellij.tasks.jira.JiraRepository;
import com.intellij.tasks.jira.JiraRepositoryType;
import com.intellij.tasks.jira.JiraVersion;
@@ -95,9 +96,11 @@ public class JiraIntegrationTest extends TaskManagerTestCase {
Task task = myRepository.findTask(key);
try {
myRepository.setTaskState(task, TaskState.IN_PROGRESS);
assertEquals(myRepository.findTask(key).getState(), TaskState.IN_PROGRESS);
task = myRepository.findTask(key);
assertEquals(task.getState(), TaskState.IN_PROGRESS);
myRepository.setTaskState(task, TaskState.RESOLVED);
assertEquals(myRepository.findTask(key).getState(), TaskState.RESOLVED);
task = myRepository.findTask(key);
assertEquals(task.getState(), TaskState.RESOLVED);
myRepository.setTaskState(task, TaskState.REOPENED);
assertEquals(myRepository.findTask(key).getState(), TaskState.REOPENED);
}
@@ -122,12 +125,12 @@ public class JiraIntegrationTest extends TaskManagerTestCase {
assertEquals(new JiraVersion("6.1-OD-09-WN").toString(), "6.1.9");
assertEquals(new JiraVersion("5.0.6").toString(), "5.0.6");
assertEquals(new JiraVersion("4.4.5").toString(), "4.4.5");
}
@Override
public void setUp() throws Exception {
super.setUp();
TaskSettings.getInstance().CONNECTION_TIMEOUT = 10000;
myRepository = new JiraRepository(new JiraRepositoryType());
myRepository.setUrl(JIRA_5_TEST_SERVER_URL);
myRepository.setUsername("buildtest");