package jalview.ext.ensembl; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import jalview.datamodel.DBRefEntry; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; import java.net.URL; 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\",\"synonyms\":[\"C21\"]}," + "{\"primary_id\":\"GO:0000165\",\"dbname\":\"GO\"}]"; //@formatter:on @Test(groups = "Functional") public void testGetCrossReferences() { String dbName = "ENSEMBL"; String dbVers = "0.6.2b1"; System.out.println(JSON); EnsemblXref testee = new EnsemblXref("http://rest.ensembl.org", dbName, dbVers) { @Override protected BufferedReader getHttpResponse(URL url, List ids) throws IOException { return new BufferedReader(new StringReader(JSON)); } }; // synonyms and GO terms are not returned List dbrefs = testee.getCrossReferences("ABCDE"); assertEquals(2, dbrefs.size()); assertEquals("CCDS", dbrefs.get(0).getSource()); assertEquals("CCDS5863", dbrefs.get(0).getAccessionId()); assertFalse(dbrefs.get(0).isPrimary()); assertEquals(dbName + ":" + dbVers, dbrefs.get(0).getVersion()); // Uniprot name should get converted to Jalview canonical form assertEquals("UNIPROT", dbrefs.get(1).getSource()); assertEquals("P15056", dbrefs.get(1).getAccessionId()); assertEquals(dbName + ":" + dbVers, dbrefs.get(1).getVersion()); assertFalse(dbrefs.get(1).isPrimary()); } }