[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