JAL-1270 main method converted to JUnit test
[jalview.git] / test / jalview / ws / rest / RestClientTest.java
diff --git a/test/jalview/ws/rest/RestClientTest.java b/test/jalview/ws/rest/RestClientTest.java
new file mode 100644 (file)
index 0000000..66cdc42
--- /dev/null
@@ -0,0 +1,52 @@
+package jalview.ws.rest;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Vector;
+
+import org.junit.Test;
+
+import jalview.bin.Cache;
+
+public class RestClientTest
+{
+  /**
+   * Refactored 'as is' from main method
+   */
+  @Test
+  public void testGetRestClient()
+  {
+    /*
+     * Load test properties file (readonly) so as not to overwrite the real one
+     */
+    Cache.loadProperties("test/src/jalview/io/testProps.jvprops");
+
+    RestClient[] clients = RestClient.getRestClients();
+    System.out.println("Got " + clients.length + " clients.");
+    int i = 0;
+    Vector<String> urls = new Vector<String>();
+    for (RestClient cl : clients)
+    {
+      System.out.println("" + (++i) + ": " + cl.service.toString());
+      urls.add(cl.service.toString());
+    }
+    RestClient.setRsbsServices(urls);
+
+    RestClient[] restClients = RestClient.getRestClients();
+    assertEquals("", clients.length, restClients.length);
+
+    /*
+     * Check the two lists hold 'equal' (albeit different) objects. Ordering
+     * should be the same as getRestClients returns the list in the same order
+     * as setRsbsServices sets it.
+     */
+    for (i = 0; i < clients.length; i++)
+    {
+      /*
+       * RestServiceDescription.equals() compares numerous fields
+       */
+      assertEquals(clients[i].getRestDescription(),
+              restClients[i].getRestDescription());
+    }
+  }
+}