JWS-61 test demonstrating compound option value problem with JABAWS client
[jabaws.git] / testsrc / compbio / ws / client / TestAAConWS.java
index a6affb9..b6be0d7 100644 (file)
@@ -3,30 +3,30 @@ package compbio.ws.client;
 import static org.testng.Assert.assertEquals;\r
 import static org.testng.Assert.assertNotNull;\r
 import static org.testng.Assert.fail;\r
-\r
+import static org.testng.Assert.assertTrue;\r
 import java.io.File;\r
 import java.io.FileInputStream;\r
 import java.io.FileNotFoundException;\r
 import java.io.IOException;\r
-import java.net.MalformedURLException;\r
-import java.net.URL;\r
-import java.util.ArrayList;\r
-import java.util.HashSet;\r
+import java.net.ConnectException;\r
 import java.util.List;\r
 \r
-import javax.xml.namespace.QName;\r
-import javax.xml.ws.Service;\r
+import javax.xml.ws.WebServiceException;\r
 \r
 import org.testng.annotations.BeforeTest;\r
 import org.testng.annotations.Test;\r
 \r
-import compbio.data.msa.Annotation;\r
+import compbio.data.msa.JABAService;\r
+import compbio.data.msa.SequenceAnnotation;\r
+import compbio.data.sequence.ConservationMethod;\r
 import compbio.data.sequence.FastaSequence;\r
-import compbio.data.sequence.Method;\r
-import compbio.data.sequence.Score;\r
+import compbio.data.sequence.ScoreManager;\r
 import compbio.data.sequence.SequenceUtil;\r
+import compbio.metadata.AllTestSuit;\r
 import compbio.metadata.JobSubmissionException;\r
 import compbio.metadata.LimitExceededException;\r
+import compbio.metadata.Option;\r
+import compbio.metadata.Preset;\r
 import compbio.metadata.PresetManager;\r
 import compbio.metadata.ResultNotAvailableException;\r
 import compbio.metadata.RunnerConfig;\r
@@ -37,25 +37,33 @@ import compbio.util.SysPrefs;
 \r
 public class TestAAConWS {\r
 \r
-       Annotation<AACon> msaws;\r
+       SequenceAnnotation<AACon> msaws;\r
 \r
-       @BeforeTest\r
+       @BeforeTest(groups = {AllTestSuit.test_group_webservices})\r
        void initConnection() {\r
-               URL url = null;\r
-               try {\r
-                       url = new URL("http://localhost:8080/jabaws/AAConWS?wsdl");\r
-               } catch (MalformedURLException e) {\r
+               /*\r
+                * URL url = null; try { url = new\r
+                * URL("http://localhost:8080/jabaws/AAConWS?wsdl"); } catch\r
+                * (MalformedURLException e) { e.printStackTrace();\r
+                * fail(e.getLocalizedMessage()); } String namespace =\r
+                * "http://msa.data.compbio/01/12/2010/"; QName qname = new\r
+                * QName(namespace, "AAConWS"); Service serv = Service.create(url,\r
+                * qname); msaws = serv.getPort(new QName(namespace, "AAConWSPort"),\r
+                * Annotation.class);\r
+                */try {\r
+                       JABAService client = Jws2Client.connect(\r
+                                       "http://localhost:8080/jabaws", Services.AAConWS);\r
+                       msaws = (SequenceAnnotation<AACon>) client;\r
+               } catch (ConnectException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (WebServiceException e) {\r
                        e.printStackTrace();\r
-                       fail(e.getLocalizedMessage());\r
+                       fail(e.getMessage());\r
                }\r
-               String namespace = "http://msa.data.compbio/01/12/2010/";\r
-               QName qname = new QName(namespace, "AAConWS");\r
-               Service serv = Service.create(url, qname);\r
-               msaws = serv.getPort(new QName(namespace, "AAConWSPort"),\r
-                               Annotation.class);\r
        }\r
 \r
-       @Test\r
+       @Test(groups = {AllTestSuit.test_group_webservices})\r
        public void testAnalize() throws FileNotFoundException, IOException {\r
 \r
                /*\r
@@ -80,11 +88,13 @@ public class TestAAConWS {
                        System.out.println("Pres: " + msaws.getPresets().getPresets());\r
                        String jobId = msaws.analize(fsl);\r
                        System.out.println("J: " + jobId);\r
-                       HashSet<Score> result = msaws.getAnnotation(jobId);\r
+                       ScoreManager result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 1);\r
-                       assertEquals(result.iterator().next().getMethod(), Method.SHENKIN);\r
-                       List<Float> scores = result.iterator().next().getScores();\r
+                       assertEquals(result.asSet().size(), 1);\r
+\r
+                       assertEquals(result.asSet().iterator().next().getMethod(),\r
+                                       ConservationMethod.SHENKIN.toString());\r
+                       List<Float> scores = result.asSet().iterator().next().getScores();\r
                        assertNotNull(scores);\r
                        assertEquals(scores.size(), 568);\r
 \r
@@ -94,19 +104,19 @@ public class TestAAConWS {
                                        presets.getPresetByName("Quick conservation"));\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 13);\r
+                       assertEquals(result.asSet().size(), 13);\r
 \r
                        jobId = msaws.presetAnalize(fsl,\r
                                        presets.getPresetByName("Slow conservation"));\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 5);\r
+                       assertEquals(result.asSet().size(), 5);\r
 \r
                        jobId = msaws.presetAnalize(fsl,\r
                                        presets.getPresetByName("Complete conservation"));\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 18);\r
+                       assertEquals(result.asSet().size(), 18);\r
 \r
                } catch (UnsupportedRuntimeException e) {\r
                        e.printStackTrace();\r
@@ -126,8 +136,17 @@ public class TestAAConWS {
                }\r
 \r
        }\r
-\r
-       @Test\r
+       @Test(groups = {AllTestSuit.test_group_webservices})\r
+       public void testRecoverArgsForPreset() throws Exception {\r
+               PresetManager<AACon> presets = msaws.getPresets();\r
+               for (Preset<AACon> preset:presets.getPresets())\r
+               {\r
+                       List<Option<AACon>> args = preset.getArguments(msaws.getRunnerOptions());\r
+                       List opts = preset.getOptions();\r
+                       assertTrue(args.size()>=opts.size(),"Couldn't recover all Option items for preset "+preset.getName());\r
+               }\r
+       }\r
+       @Test(groups = {AllTestSuit.test_group_webservices})\r
        public void testPresetAnalize() throws FileNotFoundException, IOException {\r
 \r
                String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
@@ -144,21 +163,21 @@ public class TestAAConWS {
                        PresetManager<AACon> presets = msaws.getPresets();\r
                        String jobId = msaws.presetAnalize(fsl,\r
                                        presets.getPresetByName("Quick conservation"));\r
-                       HashSet<Score> result = msaws.getAnnotation(jobId);\r
+                       ScoreManager result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 13);\r
+                       assertEquals(result.asSet().size(), 13);\r
 \r
                        jobId = msaws.presetAnalize(fsl,\r
                                        presets.getPresetByName("Slow conservation"));\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 5);\r
+                       assertEquals(result.asSet().size(), 5);\r
 \r
                        jobId = msaws.presetAnalize(fsl,\r
                                        presets.getPresetByName("Complete conservation"));\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 18);\r
+                       assertEquals(result.asSet().size(), 18);\r
 \r
                } catch (UnsupportedRuntimeException e) {\r
                        e.printStackTrace();\r
@@ -179,7 +198,7 @@ public class TestAAConWS {
 \r
        }\r
 \r
-       @Test\r
+       @Test(groups = {AllTestSuit.test_group_webservices})\r
        public void testCustomAnalize() throws FileNotFoundException, IOException {\r
 \r
                String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
@@ -195,12 +214,14 @@ public class TestAAConWS {
 \r
                try {\r
                        options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
+                       // options.getArgument("SMERFS Column Scoring Method")\r
+                       // .setDefaultValue("MAX_SCORE");\r
+                       // options.getArgument("SMERFS Gap Threshhold").setDefaultValue("1");\r
                        String jobId = msaws.customAnalize(fsl, options.getArguments());\r
-                       HashSet<Score> result = msaws.getAnnotation(jobId);\r
+                       ScoreManager result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 1);\r
-                       assertEquals(\r
-                                       new ArrayList<Score>(result).get(0).getScores().get(0),\r
+                       assertEquals(result.asSet().size(), 1);\r
+                       assertEquals(result.asSet().iterator().next().getScores().get(0),\r
                                        0.698f);\r
 \r
                        options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
@@ -209,9 +230,8 @@ public class TestAAConWS {
                        jobId = msaws.customAnalize(fsl, options.getArguments());\r
                        result = msaws.getAnnotation(jobId);\r
                        assertNotNull(result);\r
-                       assertEquals(result.size(), 1);\r
-                       assertEquals(\r
-                                       new ArrayList<Score>(result).get(0).getScores().get(0),\r
+                       assertEquals(result.asSet().size(), 1);\r
+                       assertEquals(result.asSet().iterator().next().getScores().get(0),\r
                                        0.401f);\r
 \r
                } catch (WrongParameterException e) {\r