AAConWS further work and test cases
[jabaws.git] / testsrc / compbio / ws / client / TestAAConWS.java
index a8814c8..a76b41b 100644 (file)
@@ -8,36 +8,56 @@ import java.io.File;
 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.util.List;\r
 \r
 import javax.xml.namespace.QName;\r
 import javax.xml.ws.Service;\r
 \r
+import org.testng.annotations.BeforeTest;\r
 import org.testng.annotations.Test;\r
 \r
-import compbio.conservation.Method;\r
 import compbio.data.msa.Annotation;\r
 import compbio.data.sequence.FastaSequence;\r
+import compbio.data.sequence.Method;\r
 import compbio.data.sequence.Score;\r
 import compbio.data.sequence.SequenceUtil;\r
 import compbio.metadata.JobSubmissionException;\r
 import compbio.metadata.LimitExceededException;\r
+import compbio.metadata.PresetManager;\r
 import compbio.metadata.ResultNotAvailableException;\r
+import compbio.metadata.RunnerConfig;\r
 import compbio.metadata.UnsupportedRuntimeException;\r
+import compbio.metadata.WrongParameterException;\r
+import compbio.runner.conservation.AACon;\r
 import compbio.util.SysPrefs;\r
-import compbio.ws.server.AAConWS;\r
 \r
 public class TestAAConWS {\r
 \r
-       @Test\r
-       public void test() throws FileNotFoundException, IOException {\r
+       Annotation<AACon> msaws;\r
 \r
-               URL url = new URL("http://localhost:8080/jabaws/AAConWS?wsdl");\r
+       @BeforeTest\r
+       void initConnection() {\r
+               URL url = null;\r
+               try {\r
+                       url = new URL("http://localhost:8080/jabaws/AAConWS?wsdl");\r
+               } catch (MalformedURLException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getLocalizedMessage());\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
+       public void testAnalize() throws FileNotFoundException, IOException {\r
+\r
                /*\r
                 * MsaWS msaws = serv.getPort(new QName(\r
                 * "http://msa.data.compbio/01/01/2010/", "ClustalWSPort"),\r
@@ -46,9 +66,6 @@ public class TestAAConWS {
                // Annotation<AACon> msaws = serv.getPort(new QName(namespace,\r
                // "ClustalWSPort"), Annotation.class);\r
 \r
-               Annotation<AAConWS> msaws = serv.getPort(new QName(namespace,\r
-                               "AAConWSPort"), Annotation.class);\r
-\r
                // List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
                // AAConTester.test_alignment_input));\r
 \r
@@ -60,8 +77,7 @@ public class TestAAConWS {
                                                + File.separator + "TO1381.fasta.aln"));\r
 \r
                try {\r
-                       System.out.println("Pres: "\r
-                                       + msaws.getPresets().getPresets().get(0));\r
+                       System.out.println("Pres: " + msaws.getPresets().getPresets());\r
                        String jobId = msaws.analize(fsl);\r
                        System.out.println("J: " + jobId);\r
                        HashSet<Score> result = msaws.getConservation(jobId);\r
@@ -72,6 +88,78 @@ public class TestAAConWS {
                        assertNotNull(scores);\r
                        assertEquals(scores.size(), 568);\r
 \r
+                       // Using presets\r
+                       PresetManager<AACon> presets = msaws.getPresets();\r
+                       jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Quick conservation"));\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 13);\r
+\r
+                       jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Slow conservation"));\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 5);\r
+\r
+                       jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Complete conservation"));\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 18);\r
+\r
+               } catch (UnsupportedRuntimeException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (LimitExceededException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (JobSubmissionException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (ResultNotAvailableException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (WrongParameterException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               }\r
+\r
+       }\r
+\r
+       @Test\r
+       public void testPresetAnalize() throws FileNotFoundException, IOException {\r
+\r
+               String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
+                               + File.separator;\r
+\r
+               List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
+                               CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
+                                               + File.separator + "TO1381.fasta.aln"));\r
+\r
+               try {\r
+                       System.out.println("Pres: " + msaws.getPresets().getPresets());\r
+\r
+                       // Using presets\r
+                       PresetManager<AACon> presets = msaws.getPresets();\r
+                       String jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Quick conservation"));\r
+                       HashSet<Score> result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 13);\r
+\r
+                       jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Slow conservation"));\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 5);\r
+\r
+                       jobId = msaws.presetAnalize(fsl,\r
+                                       presets.getPresetByName("Complete conservation"));\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 18);\r
+\r
                } catch (UnsupportedRuntimeException e) {\r
                        e.printStackTrace();\r
                        fail(e.getMessage());\r
@@ -84,7 +172,63 @@ public class TestAAConWS {
                } catch (ResultNotAvailableException e) {\r
                        e.printStackTrace();\r
                        fail(e.getMessage());\r
+               } catch (WrongParameterException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
                }\r
 \r
        }\r
+\r
+       @Test\r
+       public void testCustomAnalize() throws FileNotFoundException, IOException {\r
+\r
+               String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
+                               + File.separator;\r
+\r
+               List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
+                               CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
+                                               + File.separator + "TO1381.fasta.aln"));\r
+\r
+               // Using options\r
+               RunnerConfig<AACon> options = msaws.getRunnerOptions();\r
+               // System.out.println(options.getArguments());\r
+\r
+               try {\r
+                       options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
+                       String jobId = msaws.customAnalize(fsl, options.getArguments());\r
+                       HashSet<Score> result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 1);\r
+                       assertEquals(\r
+                                       new ArrayList<Score>(result).get(0).getScores().get(0),\r
+                                       0.698f);\r
+\r
+                       options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
+                       options.removeArgument("Normalize");\r
+                       System.out.println(options);\r
+                       jobId = msaws.customAnalize(fsl, options.getArguments());\r
+                       result = msaws.getConservation(jobId);\r
+                       assertNotNull(result);\r
+                       assertEquals(result.size(), 1);\r
+                       assertEquals(\r
+                                       new ArrayList<Score>(result).get(0).getScores().get(0),\r
+                                       0.401f);\r
+\r
+               } catch (WrongParameterException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (UnsupportedRuntimeException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (LimitExceededException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (JobSubmissionException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               } catch (ResultNotAvailableException e) {\r
+                       e.printStackTrace();\r
+                       fail(e.getMessage());\r
+               }\r
+       }\r
 }\r