[ARVADOS] updated: 72c312b352a88740a44fba9e274d72bbabb489a7
git at public.curoverse.com
git at public.curoverse.com
Tue Apr 29 07:49:37 EDT 2014
Summary of changes:
sdk/java/.classpath | 2 +-
sdk/java/pom.xml | 9 +-
.../main/java/org/arvados/sdk/java/Arvados.java | 115 ++++++------
.../java/org/arvados/sdk/java/MethodDetails.java | 2 +-
.../java/org/arvados/sdk/java/ArvadosTest.java | 196 +++++++++++++++-----
5 files changed, 216 insertions(+), 108 deletions(-)
via 72c312b352a88740a44fba9e274d72bbabb489a7 (commit)
from ba4693cda66632d3da1a711b6910441958ecee01 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 72c312b352a88740a44fba9e274d72bbabb489a7
Author: radhika <radhika at radhika>
Date: Tue Apr 29 07:48:45 2014 -0400
2525: Cleanup and additional tests.
diff --git a/sdk/java/.classpath b/sdk/java/.classpath
index cbd7bf0..249af5f 100644
--- a/sdk/java/.classpath
+++ b/sdk/java/.classpath
@@ -21,6 +21,6 @@
<classpathentry kind="var" path="M2_REPO/org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar"/>
<classpathentry kind="var" path="M2_REPO/com/google/guava/guava/r05/guava-r05.jar"/>
<classpathentry kind="var" path="M2_REPO/com/googlecode/json-simple/json-simple/1.1.1/json-simple-1.1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.1/junit-4.8.1.jar"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
diff --git a/sdk/java/pom.xml b/sdk/java/pom.xml
index b174154..dfd12f7 100644
--- a/sdk/java/pom.xml
+++ b/sdk/java/pom.xml
@@ -36,11 +36,10 @@
</dependency>
<dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ </dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
diff --git a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
index cc8a198..cf73712 100644
--- a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
+++ b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java
@@ -37,74 +37,46 @@ public class Arvados {
private static final Pattern METHOD_PATTERN = Pattern.compile("((\\w+)\\.)*(\\w+)");
- private static final String APP_NAME = "arvados";
-
private static String ARVADOS_API_TOKEN;
private static String ARVADOS_API_HOST;
private static String ARVADOS_API_HOST_INSECURE;
private static String ARVADOS_ROOT_URL;
- static {
- try {
- // Read needed environmental variables
- ARVADOS_API_TOKEN = System.getenv().get("ARVADOS_API_TOKEN");
- if (ARVADOS_API_TOKEN == null) {
- throw new Exception("Missing environment variable: ARVADOS_API_TOKEN");
- }
-
- ARVADOS_API_HOST = System.getenv().get("ARVADOS_API_HOST");
- if (ARVADOS_API_HOST == null) {
- throw new Exception("Missing environment variable: ARVADOS_API_HOST");
- }
-
- ARVADOS_ROOT_URL = "https://" + ARVADOS_API_HOST;
- ARVADOS_ROOT_URL += (ARVADOS_API_HOST.endsWith("/")) ? "" : "/";
-
- ARVADOS_API_HOST_INSECURE = System.getenv().get("ARVADOS_API_HOST_INSECURE");
- if (ARVADOS_API_HOST_INSECURE == null) {
- throw new Exception("Missing environment variable: ARVADOS_API_HOST_INSECURE");
- }
-
- // Create HTTP_TRANSPORT object
- NetHttpTransport.Builder builder = new NetHttpTransport.Builder();
- builder.doNotValidateCertificate();
- HTTP_TRANSPORT = builder.build();
-
- // Create DISCOVERY_CLIENT object
- Discovery.Builder discoveryBuilder = new Discovery.Builder(HTTP_TRANSPORT, JSON_FACTORY, null);
-
- discoveryBuilder.setRootUrl(ARVADOS_ROOT_URL);
- discoveryBuilder.setApplicationName(APP_NAME);
- DISCOVERY_CLIENT = discoveryBuilder.build();
- } catch (Throwable t) {
- t.printStackTrace();
- System.exit(1);
- }
- }
-
public static void main(String[] args) throws Exception {
- // parse command argument
if (args.length == 0) {
showMainHelp();
+ error(null, "Missing input args");
} else {
String command = args[0];
if (command.equals("help")) {
help(args);
} else if (command.equals("call")) {
- List<String> callParams = Arrays.asList(args);
- String response = (new Arvados()).call(callParams);
+ List<String> params = Arrays.asList(args);
+
+ if (args.length == 1) {
+ error("call", "missing api name");
+ }
+
+ Arvados arv = new Arvados(args[1]);
+ String response = arv.call(params);
System.out.println (response);
} else if (command.equals("discover")) {
- List<String> callParams = Arrays.asList(args);
- (new Arvados()).discover(callParams);
+ List<String> params = Arrays.asList(args);
+
+ if (args.length == 1) {
+ error("call", "missing api name");
+ }
+
+ Arvados arv = new Arvados(args[1]);
+ arv.discover(params);
} else {
error(null, "unknown command: " + command);
}
}
}
- protected static void help(String[] args) {
+ protected static void help(String[] args) throws Exception {
if (args.length == 1) {
showMainHelp();
} else {
@@ -127,7 +99,7 @@ public class Arvados {
}
protected static void showMainHelp() {
- System.out.println(APP_NAME);
+ System.out.println("arvados");
System.out.println();
System.out.println("For more help on a specific command, type one of:");
System.out.println();
@@ -135,12 +107,49 @@ public class Arvados {
System.out.println(" Arvados help discover");
}
- private static void error(String command, String detail) {
- System.err.println("ERROR: " + detail);
- System.err.println("For help, type: Arvados" + (command == null ? "" : " help " + command));
- System.exit(1);
+ private static void error(String command, String detail) throws Exception {
+ String errorDetail = "ERROR: " + detail +
+ "For help, type: Arvados" + (command == null ? "" : " help " + command);
+
+ throw new Exception(errorDetail);
}
+ public Arvados (String apiName){
+ try {
+ // Read needed environmental variables
+ ARVADOS_API_TOKEN = System.getenv().get("ARVADOS_API_TOKEN");
+ if (ARVADOS_API_TOKEN == null) {
+ throw new Exception("Missing environment variable: ARVADOS_API_TOKEN");
+ }
+
+ ARVADOS_API_HOST = System.getenv().get("ARVADOS_API_HOST");
+ if (ARVADOS_API_HOST == null) {
+ throw new Exception("Missing environment variable: ARVADOS_API_HOST");
+ }
+
+ ARVADOS_ROOT_URL = "https://" + ARVADOS_API_HOST;
+ ARVADOS_ROOT_URL += (ARVADOS_API_HOST.endsWith("/")) ? "" : "/";
+
+ ARVADOS_API_HOST_INSECURE = System.getenv().get("ARVADOS_API_HOST_INSECURE");
+ if (ARVADOS_API_HOST_INSECURE == null) {
+ throw new Exception("Missing environment variable: ARVADOS_API_HOST_INSECURE");
+ }
+
+ // Create HTTP_TRANSPORT object
+ NetHttpTransport.Builder builder = new NetHttpTransport.Builder();
+ builder.doNotValidateCertificate();
+ HTTP_TRANSPORT = builder.build();
+
+ // Create DISCOVERY_CLIENT object
+ Discovery.Builder discoveryBuilder = new Discovery.Builder(HTTP_TRANSPORT, JSON_FACTORY, null);
+
+ discoveryBuilder.setRootUrl(ARVADOS_ROOT_URL);
+ discoveryBuilder.setApplicationName(apiName);
+ DISCOVERY_CLIENT = discoveryBuilder.build();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
public String call(List<String> callParams) throws Exception {
if (callParams.size() == 1) {
error("call", "missing api name");
@@ -368,7 +377,7 @@ public class Arvados {
}
private static void putParameter(String argName, Map<String, Object> parameters,
- String parameterName, JsonSchema parameter, String parameterValue) {
+ String parameterName, JsonSchema parameter, String parameterValue) throws Exception {
Object value = parameterValue;
if (parameter != null) {
if ("boolean".equals(parameter.getType())) {
@@ -385,4 +394,4 @@ public class Arvados {
}
}
-}
+}
\ No newline at end of file
diff --git a/sdk/java/src/main/java/org/arvados/sdk/java/MethodDetails.java b/sdk/java/src/main/java/org/arvados/sdk/java/MethodDetails.java
index cff3dc7..2479246 100644
--- a/sdk/java/src/main/java/org/arvados/sdk/java/MethodDetails.java
+++ b/sdk/java/src/main/java/org/arvados/sdk/java/MethodDetails.java
@@ -19,4 +19,4 @@ public class MethodDetails implements Comparable<MethodDetails> {
}
return name.compareTo(o.name);
}
-}
+}
\ No newline at end of file
diff --git a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
index e4c53bc..b42fbeb 100644
--- a/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
+++ b/sdk/java/src/test/java/org/arvados/sdk/java/ArvadosTest.java
@@ -7,9 +7,8 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.Test;
+import static org.junit.Assert.*;
import com.google.api.services.discovery.model.RestDescription;
import com.google.api.services.discovery.model.RestResource;
@@ -20,30 +19,43 @@ import org.json.simple.parser.JSONParser;
/**
* Unit test for Arvados.
*/
-public class ArvadosTest extends TestCase {
- /**
- * Create the test case
- *
- * @param testName name of the test case
- */
- public ArvadosTest(String testName) {
- super( testName );
- }
+public class ArvadosTest {
- public static Test suite() {
- return new TestSuite(ArvadosTest.class);
+ @Test(expected=Exception.class)
+ public void testMainWithNoParams() throws Exception {
+ String[] args = new String[0];
+ Arvados.main(args);
}
- public void testShowMainHelp() {
- Arvados.showMainHelp();
+ @Test(expected=Exception.class)
+ public void testHelp() throws Exception {
+ String[] args = new String[1];
+
+ args[0] = "help";
+ Arvados.help(args); // expect this to succeed with no problems
+
+ args = new String[2];
+
+ args[0] = "help";
+ args[1] = "call";
+ Arvados.main(args); // call via main
+
+ args[0] = "help";
+ args[1] = "discover";
+ Arvados.help(args); // call help directly
+
+ args[0] = "help";
+ args[1] = "unknown";
+ Arvados.help(args); // expect exception
}
/**
* test discover method
* @throws Exception
*/
+ @Test
public void testDiscover() throws Exception {
- Arvados arv = new Arvados();
+ Arvados arv = new Arvados("arvados");
List<String> params = new ArrayList<String>();
params.add("discover");
@@ -69,16 +81,17 @@ public class ArvadosTest extends TestCase {
* Test users.list api
* @throws Exception
*/
+ @Test
public void testCallUsersList() throws Exception {
- Arvados arv = new Arvados();
+ Arvados arv = new Arvados("arvados");
- List<String> callParams = new ArrayList<String>();
- callParams.add("call");
- callParams.add("arvados");
- callParams.add("v1");
- callParams.add("users.list");
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v1");
+ params.add("users.list");
- String callResponse = arv.call(callParams);
+ String callResponse = arv.call(params);
assertTrue("Expected users.list in response", callResponse.contains("arvados#userList"));
assertTrue("Expected users.list in response", callResponse.contains("uuid"));
@@ -103,17 +116,18 @@ public class ArvadosTest extends TestCase {
* Test users.get <uuid> api
* @throws Exception
*/
+ @Test
public void testCallUsersGet() throws Exception {
- Arvados arv = new Arvados();
+ Arvados arv = new Arvados("arvados");
// call user.system and get uuid of this user
- List<String> callParams = new ArrayList<String>();
- callParams.add("call");
- callParams.add("arvados");
- callParams.add("v1");
- callParams.add("users.list");
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v1");
+ params.add("users.list");
- String callResponse = arv.call(callParams);
+ String callResponse = arv.call(params);
JSONParser parser = new JSONParser();
Object obj = parser.parse(callResponse);
JSONObject jsonObject = (JSONObject) obj;
@@ -125,14 +139,14 @@ public class ArvadosTest extends TestCase {
String userUuid = (String)firstUser.get("uuid");
// invoke users.get with the system user uuid
- callParams = new ArrayList<String>();
- callParams.add("call");
- callParams.add("arvados");
- callParams.add("v1");
- callParams.add("users.get");
- callParams.add(userUuid);
+ params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v1");
+ params.add("users.get");
+ params.add(userUuid);
- callResponse = arv.call(callParams);
+ callResponse = arv.call(params);
//JSONParser parser = new JSONParser();
jsonObject = (JSONObject) parser.parse(callResponse);;
@@ -144,9 +158,9 @@ public class ArvadosTest extends TestCase {
* Test users.create api
* @throws Exception
*/
- //@Ignore
+ @Test
public void testCreateUser() throws Exception {
- Arvados arv = new Arvados();
+ Arvados arv = new Arvados("arvados");
// POST request needs an input file
File file = new File("/tmp/arvados_test.json");
@@ -154,13 +168,13 @@ public class ArvadosTest extends TestCase {
output.write("{}");
output.close();
- List<String> callParams = new ArrayList<String>();
- callParams.add("call");
- callParams.add("arvados");
- callParams.add("v1");
- callParams.add("users.create");
- callParams.add("/tmp/arvados_test.json");
- String callResponse = arv.call(callParams);
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v1");
+ params.add("users.create");
+ params.add("/tmp/arvados_test.json");
+ String callResponse = arv.call(params);
JSONParser parser = new JSONParser();
JSONObject jsonObject = (JSONObject) parser.parse(callResponse);
@@ -169,5 +183,91 @@ public class ArvadosTest extends TestCase {
file.delete();
}
-}
+ /**
+ * Test unsupported api version api
+ * @throws Exception
+ */
+ @Test
+ public void testUnsupportedApiName() throws Exception {
+ Arvados arv = new Arvados("not_arvados");
+
+ // POST request needs an input file
+ File file = new File("/tmp/arvados_test.json");
+ BufferedWriter output = new BufferedWriter(new FileWriter(file));
+ output.write("{}");
+ output.close();
+
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("not_arvados");
+ params.add("v1");
+ params.add("users.list");
+
+ Exception caught = null;
+ try {
+ arv.call(params);
+ } catch (Exception e) {
+ caught = e;
+ }
+
+ assertNotNull ("expected exception", caught);
+ assertTrue ("Expected 404 when unsupported api is used", caught.getMessage().contains("404 Not Found"));
+ }
+
+ /**
+ * Test unsupported api version api
+ * @throws Exception
+ */
+ @Test
+ public void testUnsupportedVersion() throws Exception {
+ Arvados arv = new Arvados("arvados");
+
+ // POST request needs an input file
+ File file = new File("/tmp/arvados_test.json");
+ BufferedWriter output = new BufferedWriter(new FileWriter(file));
+ output.write("{}");
+ output.close();
+
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v2"); // no such version
+ params.add("users.list");
+
+ Exception caught = null;
+ try {
+ arv.call(params);
+ } catch (Exception e) {
+ caught = e;
+ }
+
+ assertNotNull ("expected exception", caught);
+ assertTrue ("Expected 404 when unsupported version is used", caught.getMessage().contains("404 Not Found"));
+ }
+
+ /**
+ * Test unsupported api version api
+ * @throws Exception
+ */
+ @Test
+ public void testCallWithTooFewParams() throws Exception {
+ Arvados arv = new Arvados("arvados");
+
+ List<String> params = new ArrayList<String>();
+ params.add("call");
+ params.add("arvados");
+ params.add("v1");
+
+ Exception caught = null;
+ try {
+ arv.call(params);
+ } catch (Exception e) {
+ caught = e;
+ }
+
+ assertNotNull ("expected exception", caught);
+ assertTrue ("Expected ERROR: missing method name", caught.getMessage().contains("ERROR: missing method name"));
+ }
+
+}
\ No newline at end of file
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list