JAL-975 JAL-951 test class for viewing layout for JABAWS services
authorjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 23 Aug 2012 10:38:00 +0000 (11:38 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Thu, 23 Aug 2012 10:38:00 +0000 (11:38 +0100)
test/jalview/ws/gui/Jws2ParamView.java [new file with mode: 0644]

diff --git a/test/jalview/ws/gui/Jws2ParamView.java b/test/jalview/ws/gui/Jws2ParamView.java
new file mode 100644 (file)
index 0000000..dedc27c
--- /dev/null
@@ -0,0 +1,281 @@
+package jalview.ws.gui;
+
+import static org.junit.Assert.assertTrue;
+import jalview.gui.WsJobParameters;
+import jalview.ws.jws2.JabaPreset;
+import jalview.ws.jws2.Jws2Discoverer;
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+
+import java.awt.BorderLayout;
+import java.awt.event.WindowEvent;
+import java.awt.event.WindowListener;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import org.junit.Test;
+
+import compbio.metadata.Option;
+import compbio.metadata.Parameter;
+import compbio.metadata.Preset;
+import compbio.metadata.PresetManager;
+
+public class Jws2ParamView
+{
+  /**
+   * test servers
+   */
+  public static String[] serviceUrls = new String[]
+  { "http://localhost:8080/jabaws" };
+
+  /**
+   * which services to test
+   */
+  public static List<String> serviceTests = new ArrayList<String>();
+
+  /**
+   * which presets to test for services
+   */
+  public static List<String> presetTests = new ArrayList<String>();
+  static
+  {
+    serviceTests.add("AAConWS".toLowerCase());
+  }
+
+  @Test
+  public void testJws2Gui()
+  {
+    jalview.ws.jws2.Jws2Discoverer disc = jalview.ws.jws2.Jws2Discoverer
+            .getDiscoverer();
+    int p = 0;
+    String svcurls="";
+    Vector<String> services = new Vector<String>();
+    for (String url : serviceUrls)
+    {
+      svcurls+=url+"; ";
+      services.add(url);
+    }
+    ;
+    Jws2Discoverer.setServiceUrls(services);
+
+    try
+    {
+      disc.run();
+    } catch (Exception e)
+    {
+      System.err.println("Aborting. Problem discovering services. Tried "+svcurls);
+      e.printStackTrace();
+      return;
+    }
+    assertTrue("Failed to discover any services at ",
+            disc.getServices().size() > 0);
+    Jws2Instance lastserv = null;
+    Iterator<String> presetEnum = presetTests.iterator();
+    for (Jws2Instance service : disc.getServices())
+    {
+      lastserv = service;
+      if (serviceTests.size() == 0
+              || serviceTests.contains(service.serviceType.toLowerCase()))
+      {
+        if (lastserv != null)
+        {
+          List<Preset> prl = null;
+          Preset pr = null;
+          if (presetEnum.hasNext())
+          {
+            PresetManager prman = lastserv.getPresets();
+            if (prman != null)
+            {
+              pr = prman.getPresetByName(presetEnum.next());
+              if (pr == null)
+              {
+                // just grab the last preset.
+                prl = prman.getPresets();
+              }
+            }
+          }
+          else
+          {
+            PresetManager prman = lastserv.getPresets();
+            if (prman != null)
+            {
+              prl = prman.getPresets();
+            }
+          }
+          Iterator<Preset> en = (prl == null) ? null : prl.iterator();
+          while (en != null && en.hasNext())
+          {
+            if (en != null)
+            {
+              if (!en.hasNext())
+              {
+                en = prl.iterator();
+              }
+              pr = en.next();
+            }
+            {
+              System.out.println("Testing opts dupes for "
+                      + lastserv.getUri() + " : "
+                      + lastserv.getActionText() + ":" + pr.getName());
+              List<Option> rg = lastserv.getRunnerConfig().getOptions();
+              for (Option o : rg)
+              {
+                try
+                {
+                  Option cpy = jalview.ws.jws2.ParameterUtils.copyOption(o);
+                } catch (Exception e)
+                {
+                  System.err.println("Failed to copy " + o.getName());
+                  e.printStackTrace();
+                } catch (Error e)
+                {
+                  System.err.println("Failed to copy " + o.getName());
+                  e.printStackTrace();
+                }
+              }
+            }
+            {
+              System.out.println("Testing param dupes:");
+              List<Parameter> rg = lastserv.getRunnerConfig()
+                      .getParameters();
+              for (Parameter o : rg)
+              {
+                try
+                {
+                  Parameter cpy = jalview.ws.jws2.ParameterUtils
+                          .copyParameter(o);
+                } catch (Exception e)
+                {
+                  System.err.println("Failed to copy " + o.getName());
+                  e.printStackTrace();
+                } catch (Error e)
+                {
+                  System.err.println("Failed to copy " + o.getName());
+                  e.printStackTrace();
+                }
+              }
+            }
+            {
+              System.out.println("Testing param write:");
+              List<String> writeparam = null, readparam = null;
+              try
+              {
+                writeparam = jalview.ws.jws2.ParameterUtils
+                        .writeParameterSet(
+                                pr.getArguments(lastserv.getRunnerConfig()),
+                                " ");
+                System.out.println("Testing param read :");
+                List<Option> pset = jalview.ws.jws2.ParameterUtils
+                        .processParameters(writeparam,
+                                lastserv.getRunnerConfig(), " ");
+                readparam = jalview.ws.jws2.ParameterUtils
+                        .writeParameterSet(pset, " ");
+                Iterator<String> o = pr.getOptions().iterator(), s = writeparam
+                        .iterator(), t = readparam.iterator();
+                boolean failed = false;
+                while (s.hasNext() && t.hasNext())
+                {
+                  String on = o.next(), sn = s.next(), st = t.next();
+                  if (!sn.equals(st))
+                  {
+                    System.out.println("Original was " + on
+                            + " Phase 1 wrote " + sn + "\tPhase 2 wrote "
+                            + st);
+                    failed = true;
+                  }
+                }
+                if (failed)
+                {
+                  System.out.println("Original parameters:\n"
+                          + pr.getOptions());
+                  System.out.println("Wrote parameters in first set:\n"
+                          + writeparam);
+                  System.out.println("Wrote parameters in second set:\n"
+                          + readparam);
+
+                }
+              } catch (Exception e)
+              {
+                e.printStackTrace();
+              }
+            }
+            WsJobParameters pgui = new WsJobParameters(lastserv,
+                    new JabaPreset(lastserv, pr));
+            JFrame jf = new JFrame("Parameters for "
+                    + lastserv.getActionText());
+            JPanel cont = new JPanel(new BorderLayout());
+            pgui.validate();
+            cont.setPreferredSize(pgui.getPreferredSize());
+            cont.add(pgui, BorderLayout.CENTER);
+            jf.setLayout(new BorderLayout());
+            jf.add(cont, BorderLayout.CENTER);
+            jf.validate();
+            final Thread thr = Thread.currentThread();
+            jf.addWindowListener(new WindowListener()
+            {
+
+              public void windowActivated(WindowEvent e)
+              {
+                // TODO Auto-generated method stub
+
+              }
+
+              public void windowClosed(WindowEvent e)
+              {
+              }
+
+              public void windowClosing(WindowEvent e)
+              {
+                thr.interrupt();
+
+              }
+
+              public void windowDeactivated(WindowEvent e)
+              {
+                // TODO Auto-generated method stub
+
+              }
+
+              public void windowDeiconified(WindowEvent e)
+              {
+                // TODO Auto-generated method stub
+
+              }
+
+              public void windowIconified(WindowEvent e)
+              {
+                // TODO Auto-generated method stub
+
+              }
+
+              public void windowOpened(WindowEvent e)
+              {
+                // TODO Auto-generated method stub
+
+              }
+
+            });
+            jf.setVisible(true);
+            boolean inter = false;
+            while (!inter)
+            {
+              try
+              {
+                Thread.sleep(10000);
+              } catch (Exception e)
+              {
+                inter = true;
+              }
+              ;
+            }
+            jf.dispose();
+          }
+        }
+      }
+    }
+  }
+}