import jalview.bin.Cache;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
+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.ws.jws2.AADisorderClient;
+import jalview.ws.api.ServiceWithParameters;
import jalview.ws.jws2.Jws2Discoverer;
-import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.jws2.SeqAnnotationServiceCalcWorker;
+import jalview.ws.slivkaws.SlivkaWSDiscoverer;
import java.util.ArrayList;
import java.util.List;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
+import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
-@Test(groups = { "External" })
+/*
+ * 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 DisorderAnnotExportImport
{
+
+ @BeforeClass(alwaysRun = true)
+ public void setUpJvOptionPane()
+ {
+ JvOptionPane.setInteractiveMode(false);
+ JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
+ }
+
public static String testseqs = "examples/uniref50.fa";
public static Jws2Discoverer disc;
- public static List<Jws2Instance> iupreds;
+ public static List<ServiceWithParameters> iupreds;
- jalview.ws.jws2.AADisorderClient disorderClient;
+ jalview.ws.jws2.SeqAnnotationServiceCalcWorker disorderClient;
public static jalview.gui.AlignFrame af = null;
- @BeforeClass(inheritGroups = true)
+ @BeforeClass(alwaysRun = true)
public static void setUpBeforeClass() throws Exception
{
Cache.loadProperties("test/jalview/io/testProps.jvprops");
Cache.initLogger();
disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
- iupreds = new ArrayList<Jws2Instance>();
- for (Jws2Instance svc : disc.getServices())
+
+ while (disc.isRunning())
+ {
+ // don't get services until discoverer has finished
+ Thread.sleep(100);
+ }
+ SlivkaWSDiscoverer disc2 = SlivkaWSDiscoverer.getInstance();
+ disc2.startDiscoverer();
+ while (disc2.isRunning())
+ {
+ Thread.sleep(100);
+ }
+ iupreds = new ArrayList<>();
+ for (ServiceWithParameters svc : disc2.getServices())
{
- if (svc.getServiceTypeURI().toLowerCase().contains("iupredws"))
+ if (svc.getNameURI().toLowerCase().contains("iupred"))
{
iupreds.add(svc);
}
af = null;
}
}
+
+ @DataProvider(name="getIuPreds",parallel = false)
+ public static ServiceWithParameters[][] getIuPreds()
+ {
+ ServiceWithParameters[][] services = new ServiceWithParameters[iupreds
+ .size()][1];
+
+ int i = 0;
+ for (ServiceWithParameters iupred : iupreds)
+ {
+ services[i++][0] = iupred;
+ }
+ return services;
+ }
/**
* test for patches to JAL-1294
*/
- @Test
- public void testDisorderAnnotExport()
+ @Test(groups = { "External", "Network" },dataProvider = "getIuPreds")
+ public void testDisorderAnnotExport(ServiceWithParameters iuPred)
{
- disorderClient = new AADisorderClient(iupreds.get(0), af, null, null);
+ disorderClient = new SeqAnnotationServiceCalcWorker(iuPred, af, null,
+ null);
af.getViewport().getCalcManager().startWorker(disorderClient);
do
{
AlignmentI orig_alig = af.getViewport().getAlignment();
// NOTE: Consensus annotation row cannot be exported and reimported
// faithfully - so we remove them
- List<AlignmentAnnotation> toremove = new ArrayList<AlignmentAnnotation>();
+ List<AlignmentAnnotation> toremove = new ArrayList<>();
for (AlignmentAnnotation aa : orig_alig.getAlignmentAnnotation())
{
if (aa.autoCalculated)
{
orig_alig.deleteAnnotation(aa);
}
- testAnnotationFileIO("Testing IUPred Annotation IO", orig_alig);
+ checkAnnotationFileIO("Testing IUPred Annotation IO", orig_alig);
}
- public static void testAnnotationFileIO(String testname, AlignmentI al)
+ static void checkAnnotationFileIO(String testname, AlignmentI al)
{
try
{
- String aligfileout = new FormatAdapter().formatSequences("PFAM",
- al.getSequencesArray());
+ String aligfileout = FileFormat.Pfam.getWriter(al).print(
+ al.getSequencesArray(), true);
String anfileout = new AnnotationFile()
.printAnnotationsForAlignment(al);
assertTrue(
DataSourceType.PASTE));
// test for consistency in io
- StockholmFileTest.testAlignmentEquivalence(al, al_new, true);
+ StockholmFileTest.testAlignmentEquivalence(al, al_new, true, false,
+ false);
return;
} catch (Exception e)
{