X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fio%2FCrossRef2xmlTests.java;h=ef7615bc5a64f843b346901a24b42492f808ff20;hb=483abbfd34bb2e47698f4cb04e21531c2b11924a;hp=c55ddd95d63266f0e8379adbd33ba6637c09c635;hpb=528c0f1815bc67b54618ad5b16c2162946974caf;p=jalview.git diff --git a/test/jalview/io/CrossRef2xmlTests.java b/test/jalview/io/CrossRef2xmlTests.java index c55ddd9..ef7615b 100644 --- a/test/jalview/io/CrossRef2xmlTests.java +++ b/test/jalview/io/CrossRef2xmlTests.java @@ -30,20 +30,41 @@ import jalview.gui.AlignFrame; import jalview.gui.CrossRefAction; import jalview.gui.Desktop; import jalview.gui.Jalview2XML; +import jalview.gui.JvOptionPane; +import jalview.util.DBRefUtils; import java.io.File; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @Test(singleThreaded = true) public class CrossRef2xmlTests extends Jalview2xmlBase { + @Override + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + + @DataProvider(name = "initialAccessions") + static Object[][] getAccessions() + { + return new String[][] { { "UNIPROT", "P00338" }, + { "UNIPROT", "Q8Z9G6" }, + { "ENSEMBLGENOMES", "CAD01290" } }; + } + /** * test store and recovery of all reachable cross refs from all reachable * crossrefs for one or more fetched db refs. Currently, this test has a known @@ -51,14 +72,22 @@ public class CrossRef2xmlTests extends Jalview2xmlBase * * @throws Exception */ - @Test(groups = { "Operational" }, enabled = true) - public void testRetrieveAndShowCrossref() throws Exception + @Test( + groups = + { "Operational" }, + dataProvider = "initialAccessions", + enabled = true) + public void testRetrieveAndShowCrossref(String forSource, + String forAccession) throws Exception { - List failedDBRetr = new ArrayList(); - List failedXrefMenuItems = new ArrayList(); - List failedProjectRecoveries = new ArrayList(); - + List failedDBRetr = new ArrayList<>(); + List failedXrefMenuItems = new ArrayList<>(); + List failedProjectRecoveries = new ArrayList<>(); + // only search for ensembl or Uniprot crossrefs + List limit=Arrays.asList(new String[] { + DBRefUtils.getCanonicalName("ENSEMBL"), + DBRefUtils.getCanonicalName("Uniprot")}); // for every set of db queries // retrieve db query // verify presence of expected xrefs @@ -75,13 +104,12 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // . codonframes // // - HashMap dbtoviewBit = new HashMap(); - List keyseq = new ArrayList(); - HashMap savedProjects = new HashMap(); + HashMap dbtoviewBit = new HashMap<>(); + List keyseq = new ArrayList<>(); + HashMap savedProjects = new HashMap<>(); - for (String[] did : new String[][] { { "ENSEMBL", "ENSG00000157764" }, - { "UNIPROT", "P01731" } }) - { +// for (String[] did : new String[][] { { "UNIPROT", "P00338" } }) +// { // pass counters - 0 - first pass, 1 means retrieve project rather than // perform action int pass1 = 0, pass2 = 0, pass3 = 0; @@ -91,7 +119,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // { pass 2 = 0 { pass 3 = 0 } } do { - String first = did[0] + " " + did[1]; + String first = forSource + " " + forAccession;//did[0] + " " + did[1]; AlignFrame af = null; boolean dna; AlignmentI retral; @@ -103,7 +131,8 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // retrieve dbref List afs = jalview.gui.SequenceFetcher.fetchAndShow( - did[0], did[1]); + forSource, forAccession); + // did[0], did[1]); if (afs.size() == 0) { failedDBRetr.add("Didn't retrieve " + first); @@ -130,7 +159,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase Desktop.instance.closeAll_actionPerformed(null); // recover stored project af = new FileLoader(false).LoadFileWaitTillLoaded(savedProjects - .get(first).toString(), FormatAdapter.FILE); + .get(first).toString(), DataSourceType.FILE); System.out.println("Recovered view for '" + first + "' from '" + savedProjects.get(first).toString() + "'"); dna = af.getViewport().getAlignment().isNucleotide(); @@ -153,7 +182,8 @@ public class CrossRef2xmlTests extends Jalview2xmlBase ptypes = (seqs == null || seqs.length == 0) ? null : new CrossRef( seqs, dataset).findXrefSourcesForSequences(dna); - + filterDbRefs(ptypes, limit); + // start of pass2: retrieve each cross-ref for fetched or restored // project. do // first cross ref and recover crossref loop @@ -166,7 +196,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // build next key so we an retrieve all views String nextxref = first + " -> " + db + "{" + firstcr_ap + "}"; // perform crossref action, or retrieve stored project - List cra_views = new ArrayList(); + List cra_views = new ArrayList<>(); CrossRefAction cra = null; if (pass2 == 0) @@ -203,7 +233,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase // recover stored project AlignFrame af2 = new FileLoader(false) .LoadFileWaitTillLoaded(savedProjects.get(nextxref) - .toString(), FormatAdapter.FILE); + .toString(), DataSourceType.FILE); System.out.println("Recovered view for '" + nextxref + "' from '" + savedProjects.get(nextxref).toString() + "'"); @@ -227,7 +257,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase } } - HashMap> xrptypes = new HashMap>(); + HashMap> xrptypes = new HashMap<>(); // first save/verify views. for (AlignmentViewPanel avp : cra_views) { @@ -264,7 +294,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase nextxref = first + " -> " + db + "{" + firstcr_ap++ + "}"; for (String xrefdb : xrptypes.get(nextxref)) { - List cra_views2 = new ArrayList(); + List cra_views2 = new ArrayList<>(); int q = 0; String nextnextxref = nextxref + " -> " + xrefdb + "{" + q + "}"; @@ -314,7 +344,8 @@ public class CrossRef2xmlTests extends Jalview2xmlBase AlignFrame af2 = new FileLoader(false) .LoadFileWaitTillLoaded( savedProjects.get(nextnextxref) - .toString(), FormatAdapter.FILE); + .toString(), + DataSourceType.FILE); System.out.println("Recovered view for '" + nextnextxref + "' from '" + savedProjects.get(nextnextxref).toString() @@ -395,7 +426,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase pass1++; } } while (pass1 < 3); - } + if (failedXrefMenuItems.size() > 0) { for (String s : failedXrefMenuItems) @@ -426,6 +457,25 @@ public class CrossRef2xmlTests extends Jalview2xmlBase } } + private void filterDbRefs(List ptypes, List limit) + { + if (limit != null) + { + int p = 0; + while (ptypes.size() > p) + { + if (!limit.contains(ptypes.get(p))) + { + ptypes.remove(p); + } + else + { + p++; + } + } + } + } + /** * wrapper to trap known defect for AH002001 testcase * @@ -469,7 +519,7 @@ public class CrossRef2xmlTests extends Jalview2xmlBase private void assertType(boolean expectProtein, AlignmentViewPanel alignmentViewPanel, String message) { - List nonType = new ArrayList(); + List nonType = new ArrayList<>(); for (SequenceI sq : alignmentViewPanel.getAlignViewport() .getAlignment().getSequences()) {