X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=test%2Fjalview%2Futil%2FUrlLinkTest.java;h=cea1bf2a973cd4b7b0d80eb7be2d63096e08e4f0;hb=99bfb1a08e5ceb3a3c990bb49dcd7433a0880558;hp=4092cf2ff7f2b2ad87022eaf9023e8f6aec332c5;hpb=64f19a3315b24ae0084cdc5ca8d47c9485040588;p=jalview.git diff --git a/test/jalview/util/UrlLinkTest.java b/test/jalview/util/UrlLinkTest.java index 4092cf2..cea1bf2 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; @@ -61,7 +62,7 @@ public class UrlLinkTest final static String DELIM = "$"; final static String REGEX_NESTED = "=/^(?:Label:)?(?:(?:gi\\|(\\d+))|([^:]+))/="; - + final static String REGEX_RUBBISH = "=/[0-9]++/="; /** @@ -154,11 +155,9 @@ public class UrlLinkTest assertEquals(REGEX_RUBBISH.substring(2, REGEX_RUBBISH.length() - 2), ul.getRegexReplace()); assertFalse(ul.isValid()); - assertEquals( - "Invalid Regular Expression : '" - + REGEX_RUBBISH.substring(2, REGEX_RUBBISH.length() - 2) - + "'\n", - ul.getInvalidMessage()); + assertEquals("Invalid Regular Expression : '" + + REGEX_RUBBISH.substring(2, REGEX_RUBBISH.length() - 2) + + "'\n", ul.getInvalidMessage()); } /** @@ -271,7 +270,7 @@ 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; @@ -291,7 +290,7 @@ 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; @@ -311,12 +310,13 @@ 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=$" - + SEQUENCE_ID + "$"); + links.add( + "EMBL-EBI Search | http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$" + + SEQUENCE_ID + "$"); links.add("UNIPROT | http://www.uniprot.org/uniprot/$" + DB_ACCESSION + "$"); links.add("INTERPRO | http://www.ebi.ac.uk/interpro/entry/$" @@ -341,7 +341,7 @@ 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() @@ -351,27 +351,27 @@ public class UrlLinkTest 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)); + 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(linkset.size(), 1); assertTrue(linkset.containsKey(key)); assertEquals(DBRefSource.UNIPROT, linkset.get(key).get(0)); - assertEquals(DBRefSource.UNIPROT + SEP + "P83527", linkset.get(key) - .get(1)); + 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)); + 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()); @@ -381,29 +381,29 @@ public class UrlLinkTest 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)); + 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("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)); + 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("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)); + 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()); } @@ -439,4 +439,25 @@ public class UrlLinkTest } + @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 + */ + String dbRefUrl = "Cath|http://www.cathdb.info/version/v4_2_0/superfamily/$DB_ACCESSION$"; + String seqIdUrl = "EBI|https://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$"; + 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); + } }