1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package it;
17
18 import com.atlassian.jira.rest.client.IntegrationTestUtil;
19 import com.atlassian.jira.rest.client.api.RestClientException;
20 import com.atlassian.jira.rest.client.api.domain.Permissions;
21 import com.atlassian.jira.rest.client.api.domain.input.MyPermissionsInput;
22 import com.atlassian.jira.rest.client.internal.json.TestConstants;
23 import com.google.common.base.Optional;
24 import org.junit.Before;
25 import org.junit.Test;
26
27 import static org.hamcrest.Matchers.is;
28 import static org.junit.Assert.assertThat;
29 import static org.junit.Assert.fail;
30
31 public class AsynchronousMyPermissionsRestClientTest extends AbstractAsynchronousRestClientTest {
32
33 private static boolean alreadyRestored;
34
35 @Before
36 public void setup() {
37 if (!alreadyRestored) {
38 IntegrationTestUtil.restoreAppropriateJiraData(TestConstants.DEFAULT_JIRA_DUMP_FILE, administration);
39 alreadyRestored = true;
40 }
41 }
42
43 @Override
44 public void beforeMethod() {
45 super.beforeMethod();
46
47 setUser1();
48 }
49
50 @Test
51 public void testHavePermission() throws Exception {
52 testWorkIssuePermission(MyPermissionsInput.withIssue("TST-1"), true);
53 testWorkIssuePermission(MyPermissionsInput.withIssue(10000), true);
54 testWorkIssuePermission(MyPermissionsInput.withProject("TST"), true);
55 testWorkIssuePermission(MyPermissionsInput.withProject(10000), true);
56 testWorkIssuePermission(MyPermissionsInput.withIssue("RST-1"), false);
57 testWorkIssuePermission(MyPermissionsInput.withIssue(10060), false);
58 testWorkIssuePermission(MyPermissionsInput.withProject("RST"), false);
59 testWorkIssuePermission(MyPermissionsInput.withProject(10010), false);
60 testWorkIssuePermission(MyPermissionsInput.withAny(), true);
61 }
62
63 @Test
64 public void testNonExisting() throws Exception {
65 testError(MyPermissionsInput.withIssue("NONEXISTING-1"), 404);
66 testError(MyPermissionsInput.withProject("NONEXISTINGPROJECT"), 404);
67 }
68
69 private void testWorkIssuePermission(MyPermissionsInput permissionsInput, boolean expectedPermission) {
70
71 final Permissions permissions = client.getMyPermissionsRestClient().getMyPermissions(permissionsInput).claim();
72
73
74 assertThat("Context " + permissionsInput, permissions.havePermission(Permissions.WORK_ISSUE), is(expectedPermission));
75 }
76
77 private void testError(MyPermissionsInput permissionsInput, int expectedStatus) {
78 try {
79 client.getMyPermissionsRestClient().getMyPermissions(permissionsInput).claim();
80 fail("rest client should fail for input " + permissionsInput);
81 } catch (RestClientException e) {
82 assertThat("Context " + permissionsInput, e.getStatusCode(), is(Optional.of(expectedStatus)));
83 }
84 }
85 }