X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Febi%2FEBIFetchClientTest.java;fp=test%2Fjalview%2Fws%2Febi%2FEBIFetchClientTest.java;h=4eaa5b18f776717cba7fc526b9cb99c88fa3432a;hb=65d7b70ce9788fd1680a5e81b1eaae30126b8ed2;hp=0000000000000000000000000000000000000000;hpb=e1d9f73a2e2489b2213b9f54a7b4170b8e70cad6;p=jalview.git diff --git a/test/jalview/ws/ebi/EBIFetchClientTest.java b/test/jalview/ws/ebi/EBIFetchClientTest.java new file mode 100644 index 0000000..4eaa5b1 --- /dev/null +++ b/test/jalview/ws/ebi/EBIFetchClientTest.java @@ -0,0 +1,113 @@ +package jalview.ws.ebi; + +import static org.testng.AssertJUnit.assertEquals; +import static org.testng.AssertJUnit.assertNull; + +import org.testng.annotations.Test; + +public class EBIFetchClientTest +{ + /** + * Test method that constructs URL to fetch from + */ + @Test(groups = "Functional") + public void testBuildUrl() + { + /* + * EMBL + */ + assertEquals("http://www.ebi.ac.uk/ena/data/view/x53838&display=xml", + EBIFetchClient.buildUrl("X53838", "EMBL", "display=xml")); + + /* + * EMBLCDS + */ + assertEquals("http://www.ebi.ac.uk/ena/data/view/caa37824&display=xml", + EBIFetchClient.buildUrl("CAA37824", "EMBL", "display=xml")); + + /* + * Uniprot + */ + assertEquals( + "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/uniprot/p00340/uniprotxml", + EBIFetchClient.buildUrl("P00340", "UNIPROT", "uniprotxml")); + + /* + * PDB / pdb + */ + assertEquals("http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/pdb/3a6s/pdb", + EBIFetchClient.buildUrl("3A6S", "PDB", "pdb")); + + /* + * PDB / mmCIF + */ + assertEquals( + "http://www.ebi.ac.uk/Tools/dbfetch/dbfetch/pdb/3a6s/mmCIF", + EBIFetchClient.buildUrl("3A6S", "PDB", "mmCIF")); + } + + /** + * Test method that parses db:id;id;id + */ + @Test(groups = "Functional") + public void testParseIds() + { + /* + * pdb, two accessions + */ + StringBuilder queries = new StringBuilder(); + String db = EBIFetchClient.parseIds("pdb:3a6s;1A70", queries); + assertEquals("pdb", db); + assertEquals("3a6s,1A70", queries.toString()); + + /* + * pdb specified on second accession + */ + queries.setLength(0); + queries = new StringBuilder(); + db = EBIFetchClient.parseIds("3a6s;pdb:1A70", queries); + assertEquals("pdb", db); + assertEquals("3a6s,1A70", queries.toString()); + + /* + * uniprot, one accession + */ + queries.setLength(0); + db = EBIFetchClient.parseIds("uniprot:P00340", queries); + assertEquals("uniprot", db); + assertEquals("P00340", queries.toString()); + + /* + * uniprot, one accession, appending to existing queries + */ + queries.setLength(0); + queries.append("P30419"); + db = EBIFetchClient.parseIds("uniprot:P00340", queries); + assertEquals("uniprot", db); + assertEquals("P30419,P00340", queries.toString()); + + /* + * pdb and uniprot mixed - rejected + */ + queries.setLength(0); + db = EBIFetchClient.parseIds("pdb:3a6s;1a70;uniprot:P00340", queries); + assertNull(db); + assertEquals("3a6s,1a70", queries.toString()); + + /* + * pdb and PDB mixed - ok + */ + queries.setLength(0); + db = EBIFetchClient.parseIds("pdb:3a6s;pdb:1a70;PDB:1QIP", queries); + assertEquals("PDB", db); + assertEquals("3a6s,1a70,1QIP", queries.toString()); + + /* + * no database (improper format) + */ + queries.setLength(0); + db = EBIFetchClient.parseIds("P00340", queries); + assertNull(db); + assertEquals("P00340", queries.toString()); + } +}