X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2FSequenceFetcherTest.java;h=70c6266e5f16d2610b6242ffefb2c01770724254;hb=8dcca4766ed3d696a6160565ef43e21662557008;hp=32afd5f7ab3beaa5a328e576e31fcdac3f676fc8;hpb=5f4e1e4c330b045e9c8bce28ee132a0fca3834d8;p=jalview.git diff --git a/test/jalview/ws/SequenceFetcherTest.java b/test/jalview/ws/SequenceFetcherTest.java index 32afd5f..70c6266 100644 --- a/test/jalview/ws/SequenceFetcherTest.java +++ b/test/jalview/ws/SequenceFetcherTest.java @@ -30,10 +30,14 @@ import jalview.ws.seqfetcher.ASequenceFetcher; import jalview.ws.seqfetcher.DbSourceProxy; import java.util.Enumeration; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Vector; +import org.testng.Assert; import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; public class SequenceFetcherTest { @@ -45,6 +49,30 @@ public class SequenceFetcherTest JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); } + @Test(groups = "Functional") + public void testNoDuplicatesInFetchDbRefs() + { + Map> seen = new HashMap<>(); + jalview.ws.SequenceFetcher sfetcher = new jalview.ws.SequenceFetcher(); + String dupes = ""; + for (String src : sfetcher.getOrderedSupportedSources()) + { + List seenitem = seen.get(src); + if (seenitem != null) + { + dupes += (dupes.length() > 0 ? "," : "") + src; + } + else + { + seen.put(src, sfetcher.getSourceProxy(src)); + } + } + if (dupes.length() > 0) + { + Assert.fail("Duplicate sources : " + dupes); + } + } + /** * simple run method to test dbsources. * @@ -52,26 +80,24 @@ public class SequenceFetcherTest */ public static void main(String[] argv) { - // TODO: extracted from SequenceFetcher - convert to proper unit test with + // TODO: extracted from SequenceFetcher - convert to network dependent + // functional integration test with // assertions String usage = "SequenceFetcher.main [-nodas] [ []]\n" + "With no arguments, all DbSources will be queried with their test Accession number.\n" + "With one argument, the argument will be resolved to one or more db sources and each will be queried with their test accession only.\n" - + "If given two arguments, SequenceFetcher will try to find the DbFetcher corresponding to and retrieve from it.\n" - + "The -nodas option will exclude DAS sources from the database fetchers Jalview will try to use."; - boolean withDas = true; - if (argv != null && argv.length > 0 - && argv[0].toLowerCase().startsWith("-nodas")) + + "If given two arguments, SequenceFetcher will try to find the DbFetcher corresponding to and retrieve from it."; + + if (argv != null && argv.length > 0) { - withDas = false; String targs[] = new String[argv.length - 1]; System.arraycopy(argv, 1, targs, 0, targs.length); argv = targs; } if (argv != null && argv.length > 0) { - List sps = new SequenceFetcher(withDas) + List sps = new SequenceFetcher() .getSourceProxy(argv[0]); if (sps != null) @@ -102,7 +128,7 @@ public class SequenceFetcherTest System.out.println(usage); return; } - ASequenceFetcher sfetcher = new SequenceFetcher(withDas); + ASequenceFetcher sfetcher = new SequenceFetcher(); String[] dbSources = sfetcher.getSupportedDb(); for (int dbsource = 0; dbsource < dbSources.length; dbsource++) { @@ -124,7 +150,7 @@ public class SequenceFetcherTest String testQuery) { AlignmentI ds = null; - Vector noProds = new Vector(); + Vector noProds = new Vector<>(); System.out.println("Source: " + sp.getDbName() + " (" + db + "): retrieving test:" + sp.getTestQuery()); {