X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fws%2Fjabaws%2FRNAStructExportImport.java;h=0a9cb19472d648b19ef1a742e47f2bd85305190c;hb=d043ce47fc710d3eb2629ba926a8a7417bd67d8c;hp=06c803f8396fb83aac2218d83fa76ede11c94006;hpb=483e7163b1fb8d4bcb9393014816c944befce328;p=jalview.git diff --git a/test/jalview/ws/jabaws/RNAStructExportImport.java b/test/jalview/ws/jabaws/RNAStructExportImport.java index 06c803f..0a9cb19 100644 --- a/test/jalview/ws/jabaws/RNAStructExportImport.java +++ b/test/jalview/ws/jabaws/RNAStructExportImport.java @@ -20,21 +20,25 @@ */ 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.bin.Console; 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.api.ServiceWithParameters; +import jalview.ws.jws2.JabaParamStore; import jalview.ws.jws2.Jws2Discoverer; -import jalview.ws.jws2.RNAalifoldClient; +import jalview.ws.jws2.SeqAnnotationServiceCalcWorker; import jalview.ws.jws2.SequenceAnnotationWSClient; import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.params.AutoCalcSetting; @@ -55,6 +59,11 @@ 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 { @@ -73,7 +82,7 @@ public class RNAStructExportImport public static Jws2Instance rnaalifoldws; - jalview.ws.jws2.RNAalifoldClient alifoldClient; + SeqAnnotationServiceCalcWorker alifoldClient; public static jalview.gui.AlignFrame af = null; @@ -81,15 +90,22 @@ public class RNAStructExportImport public static void setUpBeforeClass() throws Exception { Cache.loadProperties("test/jalview/io/testProps.jvprops"); - Cache.initLogger(); + Console.initLogger(); disc = JalviewJabawsTestUtils.getJabawsDiscoverer(false); - for (Jws2Instance svc : disc.getServices()) + while (disc.isRunning()) + { + // don't get services until discoverer has finished + Thread.sleep(100); + } + + for (ServiceWithParameters svc : disc.getServices()) { - if (svc.getServiceTypeURI().toLowerCase().contains("rnaalifoldws")) + if (svc.getServiceTypeURI().toLowerCase(Locale.ROOT) + .contains("rnaalifoldws")) { - rnaalifoldws = svc; + rnaalifoldws = (Jws2Instance) svc; } } @@ -102,12 +118,13 @@ public class RNAStructExportImport jalview.io.FileLoader fl = new jalview.io.FileLoader(false); - af = fl.LoadFileWaitTillLoaded(testseqs, jalview.io.DataSourceType.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()) { @@ -139,11 +156,12 @@ public class RNAStructExportImport } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAAliFoldValidStructure() { - alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, null); + alifoldClient = new SeqAnnotationServiceCalcWorker(rnaalifoldws, af, null, + null); af.getViewport().getCalcManager().startWorker(alifoldClient); @@ -172,11 +190,12 @@ public class RNAStructExportImport } } - @Test(groups = { "Functional" }) + @Test(groups = { "Network" }) public void testRNAStructExport() { - alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, null); + alifoldClient = new SeqAnnotationServiceCalcWorker(rnaalifoldws, af, null, + null); af.getViewport().getCalcManager().startWorker(alifoldClient); @@ -191,61 +210,57 @@ public class RNAStructExportImport } 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. bug is JAL-3122 + 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 = FileFormat.Pfam.getAlignmentFile().print( - al.getSequencesArray(), true); + String aligfileout = FileFormat.Pfam.getWriter(null) + .print(al.getSequencesArray(), true); String anfileout = new AnnotationFile() .printAnnotationsForAlignment(al); - assertNotNull( - "Test " - + testname - + "\nAlignment annotation file was not regenerated. Null string", + assertNotNull("Test " + testname + + "\nAlignment annotation file was not regenerated. Null string", anfileout); - assertTrue( - "Test " - + testname - + "\nAlignment annotation file was not regenerated. Empty string", + assertTrue("Test " + testname + + "\nAlignment annotation file was not regenerated. Empty string", anfileout.length() > "JALVIEW_ANNOTATION".length()); - System.out.println("Output annotation file:\n" + anfileout - + "\n< opts = new ArrayList(); + List opts = new ArrayList<>(); for (Argument rg : (List) rnaalifoldws.getRunnerConfig() .getArguments()) { @@ -266,7 +281,8 @@ public class RNAStructExportImport opts.add(rg); } } - alifoldClient = new RNAalifoldClient(rnaalifoldws, af, null, opts); + alifoldClient = new SeqAnnotationServiceCalcWorker(rnaalifoldws, af, null, + JabaParamStore.getJwsArgsfromJaba(opts)); af.getViewport().getCalcManager().startWorker(alifoldClient); @@ -280,20 +296,20 @@ public class RNAStructExportImport } ; } while (af.getViewport().getCalcManager().isWorking()); - AutoCalcSetting oldacs = af.getViewport().getCalcIdSettingsFor( - alifoldClient.getCalcId()); + AutoCalcSetting oldacs = af.getViewport() + .getCalcIdSettingsFor(alifoldClient.getCalcId()); String oldsettings = oldacs.getWsParamFile(); // write out parameters jalview.gui.AlignFrame nalf = null; - assertTrue("Couldn't write out the Jar file", - new Jalview2XML(false).saveAlignment(af, JAR_FILE_NAME, - "trial parameter writeout")); - assertTrue("Couldn't read back the Jar file", (nalf = new Jalview2XML( - false).loadJalviewAlign(JAR_FILE_NAME)) != null); + assertTrue("Couldn't write out the Jar file", new Jalview2XML(false) + .saveAlignment(af, JAR_FILE_NAME, "trial parameter writeout")); + assertTrue("Couldn't read back the Jar file", + (nalf = new Jalview2XML(false) + .loadJalviewAlign(JAR_FILE_NAME)) != null); if (nalf != null) { - AutoCalcSetting acs = af.getViewport().getCalcIdSettingsFor( - alifoldClient.getCalcId()); + AutoCalcSetting acs = af.getViewport() + .getCalcIdSettingsFor(alifoldClient.getCalcId()); assertTrue("Calc ID settings not recovered from viewport stash", acs.equals(oldacs)); assertTrue( @@ -327,8 +343,8 @@ public class RNAStructExportImport } ; } - AutoCalcSetting acs2 = af.getViewport().getCalcIdSettingsFor( - alifoldClient.getCalcId()); + AutoCalcSetting acs2 = af.getViewport() + .getCalcIdSettingsFor(alifoldClient.getCalcId()); assertTrue( "Calc ID settings after recalculation has not been recovered.", acs2.getWsParamFile().equals(oldsettings));