/test-plugin/src/main/java/junit/jira/JiraReadUsersAndGroupsScopeTest.java
https://bitbucket.org/rodogu/remotable-plugins · Java · 119 lines · 104 code · 12 blank · 3 comment · 0 complexity · 9fd93e2a1f408ffc51fb906f18e29aec MD5 · raw file
- package junit.jira;
- import com.atlassian.jira.rest.client.api.UserRestClient;
- import com.atlassian.jira.rest.client.api.domain.User;
- import com.atlassian.jira.rpc.soap.client.JiraSoapService;
- import com.atlassian.jira.rpc.soap.client.JiraSoapServiceServiceLocator;
- import com.atlassian.jira.rpc.soap.client.RemoteUser;
- import com.atlassian.plugin.remotable.api.service.SignedRequestHandler;
- import com.google.common.collect.ImmutableMap;
- import org.apache.axis.client.Stub;
- import org.apache.axis.transport.http.HTTPConstants;
- import org.json.simple.JSONArray;
- import org.json.simple.JSONObject;
- import org.json.simple.parser.JSONParser;
- import org.junit.Test;
- import services.ServiceAccessor;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.net.HttpURLConnection;
- import java.net.URI;
- import java.net.URL;
- import java.util.Hashtable;
- import java.util.concurrent.Callable;
- import static java.util.Arrays.asList;
- import static java.util.Collections.*;
- import static junit.ClientKeyRetriever.*;
- import static org.junit.Assert.*;
- import static services.ServiceAccessor.*;
- import static util.JsonUtils.toArray;
- /**
- *
- */
- public class JiraReadUsersAndGroupsScopeTest
- {
- private final SignedRequestHandler signedRequestHandler = ServiceAccessor.getSignedRequestHandler();
- private final String hostBaseUrl = System.getProperty("baseurl");
- @Test
- public void testCall() throws Exception
- {
- JiraSoapServiceServiceLocator locator = new JiraSoapServiceServiceLocator();
- URI url = URI.create(hostBaseUrl + "/rpc/soap/jirasoapservice-v2");
- JiraSoapService service = locator.getJirasoapserviceV2(new URL(url + "?user_id=betty"));
- String authorization = signedRequestHandler.getAuthorizationHeaderValue(url, "POST", "betty");
- ((Stub)service)._setProperty(HTTPConstants.REQUEST_HEADERS, new Hashtable(singletonMap(HTTPConstants.HEADER_AUTHORIZATION, authorization)));
- RemoteUser user = service.getUser("", "betty");
- assertEquals("betty", user.getName());
- }
- @Test
- public void testJsonCall() throws Exception
- {
- URI url = URI.create(hostBaseUrl + "/rpc/json-rpc/jirasoapservice-v2");
- HttpURLConnection conn = (HttpURLConnection) new URL(url + "?user_id=betty").openConnection();
- conn.setDoOutput(true);
- conn.setDoInput(true);
- conn.setRequestMethod("POST");
- conn.setRequestProperty("Content-Type", "application/json");
- signedRequestHandler.sign(url, "POST", "betty", conn);
- PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream()));
- String body = new JSONObject(ImmutableMap.builder()
- .put("jsonrpc", "2.0")
- .put("method", "getUser")
- .put("id", 1)
- .put("params", toArray("", "betty"))
- .build())
- .toJSONString();
- System.out.println("sending body: " + body);
- out.write(body);
- out.close();
- JSONObject result = (JSONObject) new JSONParser().parse(new InputStreamReader(conn.getInputStream()));
- System.out.println("response: " + result.toJSONString());
- assertEquals("betty", ((JSONObject) result.get("result")).get("name"));
- }
- @Test
- public void testJsonLightCall() throws Exception
- {
- URI url = URI.create(hostBaseUrl + "/rpc/json-rpc/jirasoapservice-v2/getUser");
- HttpURLConnection conn = (HttpURLConnection) new URL(url + "?user_id=betty").openConnection();
- conn.setDoOutput(true);
- conn.setDoInput(true);
- conn.setRequestMethod("POST");
- conn.setRequestProperty("Content-Type", "application/json");
- signedRequestHandler.sign(url, "POST", "betty", conn);
- PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream()));
- JSONArray arr = new JSONArray();
- arr.addAll(asList("", "betty"));
- String body = arr.toJSONString();
- System.out.println("sending body: " + body);
- out.write(body);
- out.close();
- JSONObject result = (JSONObject) new JSONParser().parse(new InputStreamReader(conn.getInputStream()));
- System.out.println("response: " + result.toString());
- assertEquals("betty", result.get("name"));
- }
- @Test
- public void testCallWithClient() throws Exception
- {
- User user = getHostHttpClient().callAs(getClientKey(), "betty", new Callable<User>()
- {
- @Override
- public User call() throws Exception
- {
- return getService(UserRestClient.class).getUser("betty").claim();
- }
- });
- assertEquals("betty", user.getName());
- }
- }