X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Futil%2FUrlLinkTest.java;h=81fe3d212ec7db4cb31a37b72454b56cfc8429d8;hb=b22e1863f9c10dbff13ca8bc889255b91f0c4d1c;hp=d07206f891ffeb73d80ec51c839b10d569e7657f;hpb=5f4e1e4c330b045e9c8bce28ee132a0fca3834d8;p=jalview.git diff --git a/test/jalview/util/UrlLinkTest.java b/test/jalview/util/UrlLinkTest.java index d07206f..81fe3d2 100644 --- a/test/jalview/util/UrlLinkTest.java +++ b/test/jalview/util/UrlLinkTest.java @@ -33,6 +33,7 @@ import jalview.datamodel.Sequence; import jalview.gui.JvOptionPane; import java.util.ArrayList; +import java.util.Comparator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -75,8 +76,8 @@ public class UrlLinkTest + DELIM + URL_SUFFIX); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX, ul.getUrl_prefix()); - assertEquals(URL_SUFFIX, ul.getUrl_suffix()); + assertEquals(URL_PREFIX, ul.getUrlPrefix()); + assertEquals(URL_SUFFIX, ul.getUrlSuffix()); assertTrue(ul.isDynamic()); assertFalse(ul.usesDBAccession()); assertNull(ul.getRegexReplace()); @@ -88,8 +89,8 @@ public class UrlLinkTest + URL_SUFFIX); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX, ul.getUrl_prefix()); - assertEquals(URL_SUFFIX, ul.getUrl_suffix()); + assertEquals(URL_PREFIX, ul.getUrlPrefix()); + assertEquals(URL_SUFFIX, ul.getUrlSuffix()); assertTrue(ul.isDynamic()); assertTrue(ul.usesDBAccession()); assertNull(ul.getRegexReplace()); @@ -100,7 +101,7 @@ public class UrlLinkTest ul = new UrlLink(DB + SEP + URL_PREFIX + URL_SUFFIX.substring(1)); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX + URL_SUFFIX.substring(1), ul.getUrl_prefix()); + assertEquals(URL_PREFIX + URL_SUFFIX.substring(1), ul.getUrlPrefix()); assertFalse(ul.isDynamic()); assertFalse(ul.usesDBAccession()); assertNull(ul.getRegexReplace()); @@ -119,8 +120,8 @@ public class UrlLinkTest + REGEX_NESTED + DELIM + URL_SUFFIX); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX, ul.getUrl_prefix()); - assertEquals(URL_SUFFIX, ul.getUrl_suffix()); + assertEquals(URL_PREFIX, ul.getUrlPrefix()); + assertEquals(URL_SUFFIX, ul.getUrlSuffix()); assertTrue(ul.isDynamic()); assertFalse(ul.usesDBAccession()); assertEquals(REGEX_NESTED.substring(2, REGEX_NESTED.length() - 2), @@ -133,8 +134,8 @@ public class UrlLinkTest + REGEX_NESTED + DELIM + URL_SUFFIX); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX, ul.getUrl_prefix()); - assertEquals(URL_SUFFIX, ul.getUrl_suffix()); + assertEquals(URL_PREFIX, ul.getUrlPrefix()); + assertEquals(URL_SUFFIX, ul.getUrlSuffix()); assertTrue(ul.isDynamic()); assertTrue(ul.usesDBAccession()); assertEquals(REGEX_NESTED.substring(2, REGEX_NESTED.length() - 2), @@ -147,8 +148,8 @@ public class UrlLinkTest + REGEX_RUBBISH + DELIM + URL_SUFFIX); assertEquals(DB, ul.getTarget()); assertEquals(DB, ul.getLabel()); - assertEquals(URL_PREFIX, ul.getUrl_prefix()); - assertEquals(URL_SUFFIX, ul.getUrl_suffix()); + assertEquals(URL_PREFIX, ul.getUrlPrefix()); + assertEquals(URL_SUFFIX, ul.getUrlSuffix()); assertTrue(ul.isDynamic()); assertTrue(ul.usesDBAccession()); assertEquals(REGEX_RUBBISH.substring(2, REGEX_RUBBISH.length() - 2), @@ -271,16 +272,16 @@ public class UrlLinkTest UrlLink ul = new UrlLink(DB + SEP + URL_PREFIX + DELIM + SEQUENCE_ID + DELIM + URL_SUFFIX); - Map> linkset = new LinkedHashMap>(); + Map> linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(null, linkset); String key = DB + SEP + URL_PREFIX; assertEquals(1, linkset.size()); assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), DB); - assertEquals(linkset.get(key).get(1), DB); - assertEquals(linkset.get(key).get(2), null); - assertEquals(linkset.get(key).get(3), URL_PREFIX); + assertEquals(DB, linkset.get(key).get(0)); + assertEquals(DB, linkset.get(key).get(1)); + assertEquals(null, linkset.get(key).get(2)); + assertEquals(URL_PREFIX, linkset.get(key).get(3)); } /** @@ -291,16 +292,16 @@ public class UrlLinkTest { UrlLink ul = new UrlLink(DB + SEP + URL_PREFIX + URL_SUFFIX); - Map> linkset = new LinkedHashMap>(); + Map> linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(null, linkset); String key = DB + SEP + URL_PREFIX + URL_SUFFIX; assertEquals(1, linkset.size()); assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), DB); - assertEquals(linkset.get(key).get(1), DB); - assertEquals(linkset.get(key).get(2), null); - assertEquals(linkset.get(key).get(3), URL_PREFIX + URL_SUFFIX); + assertEquals(DB, linkset.get(key).get(0)); + assertEquals(DB, linkset.get(key).get(1)); + assertEquals(null, linkset.get(key).get(2)); + assertEquals(URL_PREFIX + URL_SUFFIX, linkset.get(key).get(3)); } /** @@ -311,8 +312,8 @@ public class UrlLinkTest { // create list of links and list of DBRefs - List links = new ArrayList(); - List refs = new ArrayList(); + List links = new ArrayList<>(); + List refs = new ArrayList<>(); // links as might be added into Preferences | Connections dialog links.add("EMBL-EBI Search | http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$" @@ -341,71 +342,125 @@ public class UrlLinkTest UrlLink ul = new UrlLink(DB + SEP + URL_PREFIX + DELIM + SEQUENCE_ID + DELIM + URL_SUFFIX); - Map> linkset = new LinkedHashMap>(); + Map> linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(seq0, linkset); String key = seq0.getName() + SEP + URL_PREFIX + seq0.getName() + URL_SUFFIX; assertEquals(1, linkset.size()); assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), DB); - assertEquals(linkset.get(key).get(1), DB); - assertEquals(linkset.get(key).get(2), seq0.getName()); - assertEquals(linkset.get(key).get(3), URL_PREFIX + seq0.getName() - + URL_SUFFIX); + assertEquals(DB, linkset.get(key).get(0)); + assertEquals(DB, linkset.get(key).get(1)); + assertEquals(seq0.getName(), linkset.get(key).get(2)); + assertEquals(URL_PREFIX + seq0.getName() + URL_SUFFIX, linkset.get(key) + .get(3)); // Test where link takes a db annotation id and only has one dbref ul = new UrlLink(links.get(1)); - linkset = new LinkedHashMap>(); + linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(seq0, linkset); key = "P83527|http://www.uniprot.org/uniprot/P83527"; - assertEquals(1, linkset.size()); + assertEquals(linkset.size(), 1); assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), DBRefSource.UNIPROT); - assertEquals(linkset.get(key).get(1), DBRefSource.UNIPROT + SEP - + "P83527"); - assertEquals(linkset.get(key).get(2), "P83527"); - assertEquals(linkset.get(key).get(3), - "http://www.uniprot.org/uniprot/P83527"); + assertEquals(DBRefSource.UNIPROT, linkset.get(key).get(0)); + assertEquals(DBRefSource.UNIPROT + SEP + "P83527", linkset.get(key) + .get(1)); + assertEquals("P83527", linkset.get(key).get(2)); + assertEquals("http://www.uniprot.org/uniprot/P83527", linkset.get(key) + .get(3)); // Test where link takes a db annotation id and has multiple dbrefs ul = new UrlLink(links.get(2)); - linkset = new LinkedHashMap>(); + linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(seq0, linkset); assertEquals(3, linkset.size()); // check each link made it in correctly key = "IPR001041|http://www.ebi.ac.uk/interpro/entry/IPR001041"; assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), "INTERPRO"); - assertEquals(linkset.get(key).get(1), "INTERPRO" + SEP + "IPR001041"); - assertEquals(linkset.get(key).get(2), "IPR001041"); - assertEquals(linkset.get(key).get(3), - "http://www.ebi.ac.uk/interpro/entry/IPR001041"); + assertEquals("INTERPRO", linkset.get(key).get(0)); + assertEquals("INTERPRO" + SEP + "IPR001041", linkset.get(key).get(1)); + assertEquals("IPR001041", linkset.get(key).get(2)); + assertEquals("http://www.ebi.ac.uk/interpro/entry/IPR001041", linkset + .get(key).get(3)); key = "IPR006058|http://www.ebi.ac.uk/interpro/entry/IPR006058"; assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), "INTERPRO"); - assertEquals(linkset.get(key).get(1), "INTERPRO" + SEP + "IPR006058"); - assertEquals(linkset.get(key).get(2), "IPR006058"); - assertEquals(linkset.get(key).get(3), - "http://www.ebi.ac.uk/interpro/entry/IPR006058"); + assertEquals("INTERPRO", linkset.get(key).get(0)); + assertEquals("INTERPRO" + SEP + "IPR006058", linkset.get(key).get(1)); + assertEquals("IPR006058", linkset.get(key).get(2)); + assertEquals("http://www.ebi.ac.uk/interpro/entry/IPR006058", linkset + .get(key).get(3)); key = "IPR012675|http://www.ebi.ac.uk/interpro/entry/IPR012675"; assertTrue(linkset.containsKey(key)); - assertEquals(linkset.get(key).get(0), "INTERPRO"); - assertEquals(linkset.get(key).get(1), "INTERPRO" + SEP + "IPR012675"); - assertEquals(linkset.get(key).get(2), "IPR012675"); - assertEquals(linkset.get(key).get(3), - "http://www.ebi.ac.uk/interpro/entry/IPR012675"); + assertEquals("INTERPRO", linkset.get(key).get(0)); + assertEquals("INTERPRO" + SEP + "IPR012675", linkset.get(key).get(1)); + assertEquals("IPR012675", linkset.get(key).get(2)); + assertEquals("http://www.ebi.ac.uk/interpro/entry/IPR012675", linkset + .get(key).get(3)); // Test where there are no matching dbrefs for the link ul = new UrlLink(DB + SEP + URL_PREFIX + DELIM + DB_ACCESSION + DELIM + URL_SUFFIX); - linkset = new LinkedHashMap>(); + linkset = new LinkedHashMap<>(); ul.createLinksFromSeq(seq0, linkset); assertTrue(linkset.isEmpty()); } + /** + * Test links where label and target are both included + */ + @Test(groups = { "Functional" }) + public void testLinksWithTargets() + { + UrlLink ul = new UrlLink( + "Protein Data Bank | http://www.identifiers.org/pdb/$" + + DB_ACCESSION + "$" + " | pdb"); + + assertEquals("Protein Data Bank", ul.getLabel()); + assertEquals("pdb", ul.getTarget()); + assertEquals("http://www.identifiers.org/pdb/$" + DB_ACCESSION + "$", + ul.getUrlWithToken()); + + assertEquals("Protein Data Bank|http://www.identifiers.org/pdb/$" + + DB_ACCESSION + "$" + "|pdb", ul.toStringWithTarget()); + + ul = new UrlLink("Protein Data Bank", + "http://www.identifiers.org/pdb/$" + DB_ACCESSION + "$", "pdb"); + + assertEquals("Protein Data Bank", ul.getLabel()); + assertEquals("pdb", ul.getTarget()); + assertEquals("http://www.identifiers.org/pdb/$" + DB_ACCESSION + "$", + ul.getUrlWithToken()); + + assertEquals("Protein Data Bank|http://www.identifiers.org/pdb/$" + + DB_ACCESSION + "$" + "|pdb", ul.toStringWithTarget()); + + } + + @Test(groups = { "Functional" }) + public void testLinkComparator() + { + Comparator c = UrlLink.LINK_COMPARATOR; + assertEquals(0, c.compare(null, null)); + assertEquals(0, c.compare(null, "x")); + assertEquals(0, c.compare("y", null)); + + /* + * SEQUENCE_ID templates should come before DB_ACCESSION templates + * (note we are 'pretending' EMBL-EBI is a DB link so the test shows that + * these are not ordered by link name) + */ + String seqIdUrl = "Ensembl|https://www.ensembl.org/Multi/Search/Results?q=$SEQUENCE_ID$"; + String dbRefUrl = "EBI|https://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$DB_ACCESSION$"; + assertTrue(c.compare(seqIdUrl, dbRefUrl) < 0); + assertTrue(c.compare(dbRefUrl, seqIdUrl) > 0); + + String interpro = "Interpro|https://www.ebi.ac.uk/interpro/entry/$DB_ACCESSION$"; + String prosite = "ProSite|https://prosite.expasy.org/PS00197"; + assertTrue(c.compare(interpro, prosite) < 0); + assertTrue(c.compare(prosite, interpro) > 0); + } }