JAL-3848 - actually test the Slivka and JABAWS disorder services - nb still need...
[jalview.git] / test / jalview / ws / jabaws / DisorderAnnotExportImport.java
index 2714d6c..8c4816f 100644 (file)
@@ -32,9 +32,10 @@ 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;
@@ -42,6 +43,7 @@ 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;
 
 /*
@@ -63,9 +65,9 @@ public class DisorderAnnotExportImport
 
   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;
 
@@ -81,11 +83,16 @@ public class DisorderAnnotExportImport
       // don't get services until discoverer has finished
       Thread.sleep(100);
     }
-
-    iupreds = new ArrayList<Jws2Instance>();
-    for (Jws2Instance svc : disc.getServices())
+    SlivkaWSDiscoverer disc2 = SlivkaWSDiscoverer.getInstance();
+    disc2.startDiscoverer();
+    while (disc2.isRunning())
     {
-      if (svc.getServiceTypeURI().toLowerCase().contains("iupredws"))
+      Thread.sleep(100);
+    }
+    iupreds = new ArrayList<>();
+    for (ServiceWithParameters svc : disc2.getServices())
+    {
+      if (svc.getNameURI().toLowerCase().contains("iupred"))
       {
         iupreds.add(svc);
       }
@@ -107,14 +114,29 @@ public class DisorderAnnotExportImport
       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(groups = { "External", "Network" })
-  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
     {
@@ -129,7 +151,7 @@ public class DisorderAnnotExportImport
     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)
@@ -177,7 +199,8 @@ public class DisorderAnnotExportImport
                       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)
     {