*/
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;
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";
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;
}
assertNotNull("Couldn't load test data ('" + testseqs + "')", af);
// remove any existing annotation
- List<AlignmentAnnotation> aal = new ArrayList<AlignmentAnnotation>();
+ List<AlignmentAnnotation> aal = new ArrayList<>();
for (AlignmentAnnotation rna : af.getViewport().getAlignment()
.getAlignmentAnnotation())
{
}
}
- @Test(groups = { "Functional" })
+ @Test(groups = { "Network" })
public void testRNAAliFoldValidStructure()
{
}
}
- @Test(groups = { "Functional" })
+ @Test(groups = { "Network" })
public void testRNAStructExport()
{
} 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 = FileFormat.Pfam.getAlignmentFile().print(
+ String aligfileout = FileFormat.Pfam.getWriter(null).print(
al.getSequencesArray(), true);
String anfileout = new AnnotationFile()
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)
{
+ "\nCouldn't complete Annotation file roundtrip input/output/input test.");
}
- @Test(groups = { "Functional" })
+ @Test(groups = { "Network" })
public void testRnaalifoldSettingsRecovery()
{
- List<Argument> opts = new ArrayList<Argument>();
+ List<Argument> opts = new ArrayList<>();
for (Argument rg : (List<Argument>) rnaalifoldws.getRunnerConfig()
.getArguments())
{