JAL-1705 add DBRefEntry for 'self' to retrieved transcripts so they are
[jalview.git] / test / jalview / ext / ensembl / EnsemblXrefTest.java
diff --git a/test/jalview/ext/ensembl/EnsemblXrefTest.java b/test/jalview/ext/ensembl/EnsemblXrefTest.java
new file mode 100644 (file)
index 0000000..5073423
--- /dev/null
@@ -0,0 +1,68 @@
+package jalview.ext.ensembl;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import jalview.datamodel.DBRefEntry;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.List;
+
+import org.testng.annotations.Test;
+
+public class EnsemblXrefTest
+{
+  //@formatter:off
+  private static final String JSON = 
+          "[{\"primary_id\":\"CCDS5863\",\"dbname\":\"CCDS\"}," +
+           "{\"primary_id\":\"P15056\",\"dbname\":\"Uniprot/SWISSPROT\"}]";
+  //@formatter:on
+
+  @Test(groups = "functional")
+  public void testGetCrossReferences()
+  {
+    System.out.println(JSON);
+    EnsemblXref testee = new EnsemblXref("http://rest.ensembl.org")
+    {
+      @Override
+      protected BufferedReader getHttpResponse(URL url, List<String> ids)
+              throws IOException
+      {
+        return new BufferedReader(new StringReader(JSON));
+      }
+    };
+
+    /*
+     * with no filter
+     */
+    List<DBRefEntry> dbrefs = testee.getCrossReferences("ABCDE", null);
+    assertEquals(2, dbrefs.size());
+    assertEquals("CCDS", dbrefs.get(0).getSource());
+    assertEquals("CCDS5863", dbrefs.get(0).getAccessionId());
+    // Uniprot name should get converted to Jalview canonical form
+    assertEquals("UNIPROT", dbrefs.get(1).getSource());
+    assertEquals("P15056", dbrefs.get(1).getAccessionId());
+
+    /*
+     * filter for Uniprot only
+     */
+    dbrefs = testee.getCrossReferences(
+            "ABCDE",
+            Arrays.asList(new String[] { "Uniprot/SWISSPROT",
+                "Uniprot/SPTREMBL" }));
+    assertEquals(1, dbrefs.size());
+    assertEquals("UNIPROT", dbrefs.get(0).getSource());
+    assertEquals("P15056", dbrefs.get(0).getAccessionId());
+
+    /*
+     * filter for PDB only
+     */
+    dbrefs = testee.getCrossReferences("ABCDE",
+            Arrays.asList(new String[] { "PDB" }));
+    assertTrue(dbrefs.isEmpty());
+  }
+}