X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Furls%2FIdentifiersUrlProviderTest.java;h=eed58b0eeee55c1d15ef62785513c0acc9c8145a;hb=08f7a2be3977da8704dd4751de7245bcc6fc41c3;hp=d8776f4f5f2f78ac5bf5f0702daf87561bc2e369;hpb=add9d4cc86b660530c72aae631a3f23aaad16451;p=jalview.git diff --git a/test/jalview/urls/IdentifiersUrlProviderTest.java b/test/jalview/urls/IdentifiersUrlProviderTest.java index d8776f4..eed58b0 100644 --- a/test/jalview/urls/IdentifiersUrlProviderTest.java +++ b/test/jalview/urls/IdentifiersUrlProviderTest.java @@ -25,16 +25,20 @@ import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertTrue; +import jalview.urls.api.UrlProviderI; + +import java.io.File; +import java.io.FileWriter; import java.util.Arrays; import java.util.HashMap; import java.util.Vector; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class IdentifiersUrlProviderTest { - // Test identifiers.org download file - private static final String testIdOrgFile = "[{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\"," + private static final String testIdOrgFile = "{\"Local\": [{\"id\":\"MIR:00000002\",\"name\":\"ChEBI\",\"pattern\":\"^CHEBI:\\d+$\"," + "\"definition\":\"Chemical Entities of Biological Interest (ChEBI)\",\"prefix\":\"chebi\"," + "\"url\":\"http://identifiers.org/chebi\"},{\"id\":\"MIR:00000005\",\"name\":\"UniProt Knowledgebase\"," + "\"pattern\":\"^([A-N,R-Z][0-9]([A-Z][A-Z, 0-9][A-Z, 0-9][0-9]){1,2})|([O,P,Q][0-9][A-Z, 0-9][A-Z, 0-9][A-Z, 0-9][0-9])(\\.\\d+)?$\"," @@ -42,21 +46,39 @@ public class IdentifiersUrlProviderTest + "{\"id\":\"MIR:00000011\",\"name\":\"InterPro\",\"pattern\":\"^IPR\\d{6}$\",\"definition\":\"InterPro\",\"prefix\":\"interpro\"," + "\"url\":\"http://identifiers.org/interpro\"}," + "{\"id\":\"MIR:00000372\",\"name\":\"ENA\",\"pattern\":\"^[A-Z]+[0-9]+(\\.\\d+)?$\",\"definition\":\"The European Nucleotide Archive (ENA),\"" - + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]"; + + "\"prefix\":\"ena.embl\",\"url\":\"http://identifiers.org/ena.embl\"}]}"; private static final String[] dlinks = { - "MIR:00000005|http://identifiers.org/uniprot/$DB_ACCESSION$", - "MIR:00000011|http://identifiers.org/interpro/$DB_ACCESSION$", - "MIR:00000372|http://identifiers.org/ena.embl/$DB_ACCESSION$"}; + "UniProt Knowledgebase|http://identifiers.org/uniprot/$DB_ACCESSION$|uniprot", + "InterPro|http://identifiers.org/interpro/$DB_ACCESSION$|interpro", + "ENA|http://identifiers.org/ena.embl/$DB_ACCESSION$|ena.embl" }; + + private static final String[] dlinks1 = { + "MIR:00000011|http://identifiers.org/interpro/$DB_ACCESSION$", + "MIR:00000372|http://identifiers.org/ena.embl/$DB_ACCESSION$" }; + + private static final String[] dlinks2 = { + "MIR:00000005|http://identifiers.org/uniprot/$DB_ACCESSION$", + "MIR:00000011|http://identifiers.org/interpro/$DB_ACCESSION$" }; private static final String stringLinks = "MIR:00000005|http://identifiers.org/uniprot/$DB_ACCESSION$" + "MIR:00000011|http://identifiers.org/interpro/$DB_ACCESSION$" + "MIR:00000372|http://identifiers.org/ena.embl/$DB_ACCESSION$"; + private static final String[] unselDlinks = { "ChEBI|http://identifiers.org/chebi/$DB_ACCESSION$" }; private static final Vector displayLinks = new Vector( Arrays.asList(dlinks)); + private static final Vector unselDisplayLinks = new Vector( + Arrays.asList(unselDlinks)); + + private static final Vector displayLinks1 = new Vector( + Arrays.asList(dlinks1)); + + private static final Vector displayLinks2 = new Vector( + Arrays.asList(dlinks2)); + private static final HashMap urlMap = new HashMap() { { @@ -66,6 +88,33 @@ public class IdentifiersUrlProviderTest } }; + private String testfile = ""; + + + @BeforeClass(alwaysRun = true) + public void setup() + { + // setup test ids in a file + File outFile = null; + try + { + outFile = File.createTempFile("testidsfile", "txt"); + outFile.deleteOnExit(); + + FileWriter fw = new FileWriter(outFile); + fw.write(testIdOrgFile); + fw.close(); + + testfile = outFile.getAbsolutePath(); + + } catch (Exception ex) + { + System.err.println(ex); + } + + IdOrgSettings.setDownloadLocation(testfile); + } + /* * Test urls are set and returned correctly */ @@ -74,15 +123,19 @@ public class IdentifiersUrlProviderTest { // creation from cached id list String idList = "MIR:00000005|MIR:00000011|MIR:00000372"; - UrlProviderI idProv = new IdentifiersUrlProvider(idList, testIdOrgFile); + UrlProviderI idProv = new IdentifiersUrlProvider(idList); - assertTrue(displayLinks.containsAll(idProv.getLinksForDisplay())); + assertTrue(displayLinks.containsAll(idProv.getLinksForMenu())); // because UrlProvider does not guarantee order of links, we can't just // compare the output of writeUrlsAsString to a string, hence the hoops here - String result = idProv.writeUrlsAsString(); - UrlProviderI up = new IdentifiersUrlProvider(result, testIdOrgFile); - assertTrue(displayLinks.containsAll(up.getLinksForDisplay())); + String result = idProv.writeUrlsAsString(true); + UrlProviderI up = new IdentifiersUrlProvider(result); + assertTrue(displayLinks.containsAll(up.getLinksForMenu())); + + result = idProv.writeUrlsAsString(false); + up = new IdentifiersUrlProvider(result); + assertTrue(unselDisplayLinks.containsAll(up.getLinksForMenu())); } @@ -94,50 +147,26 @@ public class IdentifiersUrlProviderTest { // creation from cached id list String idList = "MIR:00000005|MIR:00000011|MIR:00000372"; - UrlProviderI idProv = new IdentifiersUrlProvider(idList, testIdOrgFile); + UrlProviderI idProv = new IdentifiersUrlProvider(idList); // initially no default - assertEquals(null, idProv.getDefaultUrl()); + assertEquals(null, idProv.getPrimaryUrl("seqid")); // set and then retrieve default - assertTrue(idProv.setDefaultUrl("MIR:00000005")); - assertEquals("MIR:00000005", idProv.getDefaultUrl()); - assertEquals("http://identifiers.org/uniprot/id", - idProv.getDefaultUrl("id")); + assertTrue(idProv.setPrimaryUrl("MIR:00000005")); + assertEquals("http://identifiers.org/uniprot/seqid", + idProv.getPrimaryUrl("seqid")); + + // ids less than length 4 return null + assertEquals(null, + idProv.getPrimaryUrl("123")); // attempt to set bad default - assertFalse(idProv.setDefaultUrl("MIR:00001234")); + assertFalse(idProv.setPrimaryUrl("MIR:00001234")); // default set to null (as default should have been set elsewhere) - assertEquals(null, idProv.getDefaultUrl()); + assertEquals(null, idProv.getPrimaryUrl("seqid")); // chooseDefaultUrl not implemented for IdentifiersUrlProvider - assertEquals(null, idProv.chooseDefaultUrl()); - } - - /* - * Test url setting works - */ - @Test(groups = { "Functional" }) - public void testSetUrlLinks() - { - // creation from cached id list - String idList = "MIR:00000005|MIR:00000011|MIR:00000372"; - UrlProviderI idProv = new IdentifiersUrlProvider(idList, testIdOrgFile); - - // set url links - String[] ids = { "MIR:00000372", "MIR:00000011" }; - Vector names = new Vector(Arrays.asList(ids)); - Vector urls = null; - idProv.setUrlLinks(names, urls); - assertEquals(names, idProv.getLinksForDisplay()); - - //set default url then reset url links, default should be unset if not present - String[] moreids = { "MIR:00000005", "MIR:00000011" }; - names = new Vector(Arrays.asList(moreids)); - idProv.setDefaultUrl("MIR:00000372"); - idProv.setUrlLinks(names, urls); - assertEquals(names, idProv.getLinksForDisplay()); - assertEquals(null, idProv.getDefaultUrl()); - + assertEquals(null, idProv.choosePrimaryUrl()); } }