1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package it;
18
19 import com.atlassian.jira.rest.client.TestUtil;
20 import com.atlassian.jira.rest.client.domain.BasicIssueType;
21 import com.atlassian.jira.rest.client.domain.BasicPriority;
22 import com.atlassian.jira.rest.client.domain.BasicResolution;
23 import com.atlassian.jira.rest.client.domain.BasicStatus;
24 import com.atlassian.jira.rest.client.domain.Issue;
25 import com.atlassian.jira.rest.client.domain.IssueType;
26 import com.atlassian.jira.rest.client.domain.Priority;
27 import com.atlassian.jira.rest.client.domain.Resolution;
28 import com.atlassian.jira.rest.client.domain.ServerInfo;
29 import com.atlassian.jira.rest.client.domain.Status;
30 import com.atlassian.jira.rest.client.domain.Transition;
31 import com.atlassian.jira.rest.client.domain.input.TransitionInput;
32 import org.joda.time.DateTime;
33
34 import javax.ws.rs.core.Response;
35
36 public class JerseyMetadataRestClientTest extends AbstractRestoringJiraStateJerseyRestClientTest {
37 public void testGetServerInfo() throws Exception {
38 final ServerInfo serverInfo = client.getMetadataClient().getServerInfo(pm);
39 assertEquals("Your Company JIRA", serverInfo.getServerTitle());
40 assertTrue(serverInfo.getBuildDate().isBeforeNow());
41 assertTrue(serverInfo.getServerTime().isAfter(new DateTime().minusMinutes(5)));
42 assertTrue(serverInfo.getServerTime().isBefore(new DateTime().plusMinutes(5)));
43 }
44
45 public void testGetIssueTypeNonExisting() throws Exception {
46 final BasicIssueType basicIssueType = client.getIssueClient().getIssue("TST-1", pm).getIssueType();
47 TestUtil.assertErrorCode(Response.Status.NOT_FOUND, "The issue type with id '" +
48 TestUtil.getLastPathSegment(basicIssueType.getSelf()) + "fake" +
49 "' does not exist", new Runnable() {
50 @Override
51 public void run() {
52 client.getMetadataClient().getIssueType(TestUtil.toUri(basicIssueType.getSelf() + "fake"), pm);
53 }
54 });
55 }
56
57 public void testGetIssueType() {
58 final BasicIssueType basicIssueType = client.getIssueClient().getIssue("TST-1", pm).getIssueType();
59 final IssueType issueType = client.getMetadataClient().getIssueType(basicIssueType.getSelf(), pm);
60 assertEquals("Bug", issueType.getName());
61 assertEquals("A problem which impairs or prevents the functions of the product.", issueType.getDescription());
62 assertTrue(issueType.getIconUri().toString().endsWith("bug.gif"));
63
64 }
65
66 public void testGetStatus() {
67 final BasicStatus basicStatus = client.getIssueClient().getIssue("TST-1", pm).getStatus();
68 final Status status = client.getMetadataClient().getStatus(basicStatus.getSelf(), pm);
69 assertEquals("The issue is open and ready for the assignee to start work on it.", status.getDescription());
70 assertTrue(status.getIconUrl().toString().endsWith("status_open.gif"));
71 assertEquals("Open", status.getName());
72 }
73
74 public void testGetStatusNonExisting() throws Exception {
75 final BasicStatus basicStatus = client.getIssueClient().getIssue("TST-1", pm).getStatus();
76 TestUtil.assertErrorCode(Response.Status.NOT_FOUND, "The status with id '" +
77 TestUtil.getLastPathSegment(basicStatus.getSelf()) + "fake" +
78 "' does not exist", new Runnable() {
79 @Override
80 public void run() {
81 client.getMetadataClient().getStatus(TestUtil.toUri(basicStatus.getSelf() + "fake"), pm);
82 }
83 });
84 }
85
86 public void testGetPriority() {
87 final BasicPriority basicPriority = client.getIssueClient().getIssue("TST-2", pm).getPriority();
88 final Priority priority = client.getMetadataClient().getPriority(basicPriority.getSelf(), pm);
89 assertEquals(basicPriority.getSelf(), priority.getSelf());
90 assertEquals("Major", priority.getName());
91 assertEquals("#009900", priority.getStatusColor());
92 assertEquals("Major loss of function.", priority.getDescription());
93 assertTrue(priority.getIconUri().toString().startsWith(jiraUri.toString()));
94 assertTrue(priority.getIconUri().toString().endsWith("/images/icons/priority_major.gif"));
95
96 }
97
98
99 public void testGetResolution() {
100 final Issue issue = client.getIssueClient().getIssue("TST-2", pm);
101 assertNull(issue.getResolution());
102 final Iterable<Transition> transitions = client.getIssueClient().getTransitions(issue.getTransitionsUri(), pm);
103 final Transition resolveTransition = getTransitionByName(transitions, "Resolve Issue");
104
105 client.getIssueClient().transition(issue.getTransitionsUri(), new TransitionInput(resolveTransition.getId()), pm);
106
107 final Issue resolvedIssue = client.getIssueClient().getIssue("TST-2", pm);
108 final BasicResolution basicResolution = resolvedIssue.getResolution();
109 assertNotNull(basicResolution);
110
111 final Resolution resolution = client.getMetadataClient().getResolution(basicResolution.getSelf(), pm);
112 assertEquals(basicResolution.getName(), resolution.getName());
113 assertEquals(basicResolution.getSelf(), resolution.getSelf());
114 assertEquals("A fix for this issue is checked into the tree and tested.", resolution.getDescription());
115 }
116 }