X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fjabaws%2FRNAStructExportImport.java;h=cc9aba0444651201e63740388e93d03989dc4b7d;hb=9d2408483e451285fd555c3cd6e0273977acbaa7;hp=58bcb44d34f9361bd29d2852ef99ce8572ba5cb8;hpb=838e4f91d4a53dd315640dbc9ff6ef7a815ee576;p=jalview.git diff --git a/test/jalview/ws/jabaws/RNAStructExportImport.java b/test/jalview/ws/jabaws/RNAStructExportImport.java index 58bcb44..cc9aba0 100644 --- a/test/jalview/ws/jabaws/RNAStructExportImport.java +++ b/test/jalview/ws/jabaws/RNAStructExportImport.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) - * Copyright (C) 2015 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -20,15 +20,21 @@ */ package jalview.ws.jabaws; +import java.util.Locale; + import static org.testng.AssertJUnit.assertNotNull; import static org.testng.AssertJUnit.assertTrue; +import jalview.bin.Cache; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; -import jalview.gui.Jalview2XML; +import jalview.gui.JvOptionPane; import jalview.io.AnnotationFile; +import jalview.io.DataSourceType; +import jalview.io.FileFormat; import jalview.io.FormatAdapter; import jalview.io.StockholmFileTest; +import jalview.project.Jalview2XML; import jalview.ws.jws2.Jws2Discoverer; import jalview.ws.jws2.RNAalifoldClient; import jalview.ws.jws2.SequenceAnnotationWSClient; @@ -36,6 +42,7 @@ import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.params.AutoCalcSetting; import java.awt.Component; +import java.io.File; import java.util.ArrayList; import java.util.List; @@ -47,11 +54,26 @@ import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import compbio.metadata.Argument; import compbio.metadata.WrongParameterException; - +/* + * All methods in this class are set to the Network group because setUpBeforeClass will fail + * if there is no network. + */ +@Test(singleThreaded = true) public class RNAStructExportImport { + + @BeforeClass(alwaysRun = true) + public void setUpJvOptionPane() + { + JvOptionPane.setInteractiveMode(false); + JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); + } + + private static final String JAR_FILE_NAME = "testRnalifold_param.jar"; + public static String testseqs = "examples/RF00031_folded.stk"; public static Jws2Discoverer disc; @@ -65,14 +87,20 @@ public class RNAStructExportImport @BeforeClass(alwaysRun = true) public static void setUpBeforeClass() throws Exception { - - jalview.bin.Cache.initLogger(); + Cache.loadProperties("test/jalview/io/testProps.jvprops"); + Cache.initLogger(); disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false); + while (disc.isRunning()) + { + // don't get services until discoverer has finished + Thread.sleep(100); + } + for (Jws2Instance svc : disc.getServices()) { - if (svc.getServiceTypeURI().toLowerCase().contains("rnaalifoldws")) + if (svc.getServiceTypeURI().toLowerCase(Locale.ROOT).contains("rnaalifoldws")) { rnaalifoldws = svc; } @@ -87,12 +115,12 @@ public class RNAStructExportImport jalview.io.FileLoader fl = new jalview.io.FileLoader(false); - af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.FormatAdapter.FILE); + af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.FILE); assertNotNull("Couldn't load test data ('" + testseqs + "')", af); // remove any existing annotation - List aal = new ArrayList(); + List aal = new ArrayList<>(); for (AlignmentAnnotation rna : af.getViewport().getAlignment() .getAlignmentAnnotation()) { @@ -109,17 +137,22 @@ public class RNAStructExportImport // public? } - @AfterClass + @AfterClass(alwaysRun = true) public static void tearDownAfterClass() throws Exception { if (af != null) { af.setVisible(false); af.dispose(); + File f = new File(JAR_FILE_NAME); + if (f.exists()) + { + f.delete(); + } } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAAliFoldValidStructure() { @@ -135,7 +168,6 @@ public class RNAStructExportImport } catch (InterruptedException x) { } - ; } while (af.getViewport().getCalcManager().isWorking()); AlignmentI orig_alig = af.getViewport().getAlignment(); @@ -153,7 +185,7 @@ public class RNAStructExportImport } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAStructExport() { @@ -169,30 +201,31 @@ public class RNAStructExportImport } catch (InterruptedException x) { } - ; } while (af.getViewport().getCalcManager().isWorking()); AlignmentI orig_alig = af.getViewport().getAlignment(); - - testAnnotationFileIO("Testing RNAalifold Annotation IO", orig_alig); + // JBPNote: this assert fails (2.10.2) because the 'Reference Positions' + // annotation is mistakenly recognised as an RNA annotation row when read in + // as an annotation file. + verifyAnnotationFileIO("Testing RNAalifold Annotation IO", orig_alig); } - public static void testAnnotationFileIO(String testname, AlignmentI al) + static void verifyAnnotationFileIO(String testname, AlignmentI al) { try { // what format would be appropriate for RNAalifold annotations? - String aligfileout = new FormatAdapter().formatSequences("PFAM", - al.getSequencesArray()); + String aligfileout = FileFormat.Pfam.getWriter(null).print( + al.getSequencesArray(), true); String anfileout = new AnnotationFile() .printAnnotationsForAlignment(al); - assertTrue( + assertNotNull( "Test " + testname + "\nAlignment annotation file was not regenerated. Null string", - anfileout != null); + anfileout); assertTrue( "Test " + testname @@ -204,16 +237,17 @@ public class RNAStructExportImport // again what format would be appropriate? AlignmentI al_new = new FormatAdapter().readFile(aligfileout, - FormatAdapter.PASTE, "PFAM"); + DataSourceType.PASTE, FileFormat.Pfam); assertTrue( "Test " + testname + "\nregenerated annotation file did not annotate alignment.", new AnnotationFile().readAnnotationFile(al_new, anfileout, - FormatAdapter.PASTE)); + DataSourceType.PASTE)); // test for consistency in io - StockholmFileTest.testAlignmentEquivalence(al, al_new, false); + StockholmFileTest.testAlignmentEquivalence(al, al_new, false, false, + false); return; } catch (Exception e) { @@ -224,12 +258,12 @@ public class RNAStructExportImport + "\nCouldn't complete Annotation file roundtrip input/output/input test."); } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRnaalifoldSettingsRecovery() { - List opts = new ArrayList(); - for (compbio.metadata.Argument rg : (List) rnaalifoldws - .getRunnerConfig().getArguments()) + List opts = new ArrayList<>(); + for (Argument rg : (List) rnaalifoldws.getRunnerConfig() + .getArguments()) { if (rg.getDescription().contains("emperature")) { @@ -268,10 +302,10 @@ public class RNAStructExportImport // write out parameters jalview.gui.AlignFrame nalf = null; assertTrue("Couldn't write out the Jar file", - new Jalview2XML(false).saveAlignment(af, - "testRnalifold_param.jar", "trial parameter writeout")); + new Jalview2XML(false).saveAlignment(af, JAR_FILE_NAME, + "trial parameter writeout")); assertTrue("Couldn't read back the Jar file", (nalf = new Jalview2XML( - false).loadJalviewAlign("testRnalifold_param.jar")) != null); + false).loadJalviewAlign(JAR_FILE_NAME)) != null); if (nalf != null) { AutoCalcSetting acs = af.getViewport().getCalcIdSettingsFor(