Slight refactoring
[jabaws.git] / testsrc / compbio / ws / client / TestAAConWS.java
1 package compbio.ws.client;\r
2 \r
3 import static org.testng.Assert.assertEquals;\r
4 import static org.testng.Assert.assertNotNull;\r
5 import static org.testng.Assert.fail;\r
6 \r
7 import java.io.File;\r
8 import java.io.FileInputStream;\r
9 import java.io.FileNotFoundException;\r
10 import java.io.IOException;\r
11 import java.net.ConnectException;\r
12 import java.util.List;\r
13 \r
14 import javax.xml.ws.WebServiceException;\r
15 \r
16 import org.testng.annotations.BeforeTest;\r
17 import org.testng.annotations.Test;\r
18 \r
19 import compbio.data.msa.JABAService;\r
20 import compbio.data.msa.SequenceAnnotation;\r
21 import compbio.data.sequence.ConservationMethod;\r
22 import compbio.data.sequence.FastaSequence;\r
23 import compbio.data.sequence.ScoreManager;\r
24 import compbio.data.sequence.SequenceUtil;\r
25 import compbio.metadata.AllTestSuit;\r
26 import compbio.metadata.JobSubmissionException;\r
27 import compbio.metadata.LimitExceededException;\r
28 import compbio.metadata.PresetManager;\r
29 import compbio.metadata.ResultNotAvailableException;\r
30 import compbio.metadata.RunnerConfig;\r
31 import compbio.metadata.UnsupportedRuntimeException;\r
32 import compbio.metadata.WrongParameterException;\r
33 import compbio.runner.conservation.AACon;\r
34 import compbio.util.SysPrefs;\r
35 \r
36 public class TestAAConWS {\r
37 \r
38         SequenceAnnotation<AACon> msaws;\r
39 \r
40         @BeforeTest(groups = {AllTestSuit.test_group_webservices})\r
41         void initConnection() {\r
42                 /*\r
43                  * URL url = null; try { url = new\r
44                  * URL("http://localhost:8080/jabaws/AAConWS?wsdl"); } catch\r
45                  * (MalformedURLException e) { e.printStackTrace();\r
46                  * fail(e.getLocalizedMessage()); } String namespace =\r
47                  * "http://msa.data.compbio/01/12/2010/"; QName qname = new\r
48                  * QName(namespace, "AAConWS"); Service serv = Service.create(url,\r
49                  * qname); msaws = serv.getPort(new QName(namespace, "AAConWSPort"),\r
50                  * Annotation.class);\r
51                  */try {\r
52                         JABAService client = Jws2Client.connect(\r
53                                         "http://localhost:8080/jabaws", Services.AAConWS);\r
54                         msaws = (SequenceAnnotation<AACon>) client;\r
55                 } catch (ConnectException e) {\r
56                         e.printStackTrace();\r
57                         fail(e.getMessage());\r
58                 } catch (WebServiceException e) {\r
59                         e.printStackTrace();\r
60                         fail(e.getMessage());\r
61                 }\r
62         }\r
63 \r
64         @Test(groups = {AllTestSuit.test_group_webservices})\r
65         public void testAnalize() throws FileNotFoundException, IOException {\r
66 \r
67                 /*\r
68                  * MsaWS msaws = serv.getPort(new QName(\r
69                  * "http://msa.data.compbio/01/01/2010/", "ClustalWSPort"),\r
70                  * MsaWS.class);\r
71                  */\r
72                 // Annotation<AACon> msaws = serv.getPort(new QName(namespace,\r
73                 // "ClustalWSPort"), Annotation.class);\r
74 \r
75                 // List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
76                 // AAConTester.test_alignment_input));\r
77 \r
78                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
79                                 + File.separator;\r
80 \r
81                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
82                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
83                                                 + File.separator + "TO1381.fasta.aln"));\r
84 \r
85                 try {\r
86                         System.out.println("Pres: " + msaws.getPresets().getPresets());\r
87                         String jobId = msaws.analize(fsl);\r
88                         System.out.println("J: " + jobId);\r
89                         ScoreManager result = msaws.getAnnotation(jobId);\r
90                         assertNotNull(result);\r
91                         assertEquals(result.asSet().size(), 1);\r
92 \r
93                         assertEquals(result.asSet().iterator().next().getMethod(),\r
94                                         ConservationMethod.SHENKIN.toString());\r
95                         List<Float> scores = result.asSet().iterator().next().getScores();\r
96                         assertNotNull(scores);\r
97                         assertEquals(scores.size(), 568);\r
98 \r
99                         // Using presets\r
100                         PresetManager<AACon> presets = msaws.getPresets();\r
101                         jobId = msaws.presetAnalize(fsl,\r
102                                         presets.getPresetByName("Quick conservation"));\r
103                         result = msaws.getAnnotation(jobId);\r
104                         assertNotNull(result);\r
105                         assertEquals(result.asSet().size(), 13);\r
106 \r
107                         jobId = msaws.presetAnalize(fsl,\r
108                                         presets.getPresetByName("Slow conservation"));\r
109                         result = msaws.getAnnotation(jobId);\r
110                         assertNotNull(result);\r
111                         assertEquals(result.asSet().size(), 5);\r
112 \r
113                         jobId = msaws.presetAnalize(fsl,\r
114                                         presets.getPresetByName("Complete conservation"));\r
115                         result = msaws.getAnnotation(jobId);\r
116                         assertNotNull(result);\r
117                         assertEquals(result.asSet().size(), 18);\r
118 \r
119                 } catch (UnsupportedRuntimeException e) {\r
120                         e.printStackTrace();\r
121                         fail(e.getMessage());\r
122                 } catch (LimitExceededException e) {\r
123                         e.printStackTrace();\r
124                         fail(e.getMessage());\r
125                 } catch (JobSubmissionException e) {\r
126                         e.printStackTrace();\r
127                         fail(e.getMessage());\r
128                 } catch (ResultNotAvailableException e) {\r
129                         e.printStackTrace();\r
130                         fail(e.getMessage());\r
131                 } catch (WrongParameterException e) {\r
132                         e.printStackTrace();\r
133                         fail(e.getMessage());\r
134                 }\r
135 \r
136         }\r
137         @Test(groups = {AllTestSuit.test_group_webservices})\r
138         public void testPresetAnalize() throws FileNotFoundException, IOException {\r
139 \r
140                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
141                                 + File.separator;\r
142 \r
143                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
144                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
145                                                 + File.separator + "TO1381.fasta.aln"));\r
146 \r
147                 try {\r
148                         System.out.println("Pres: " + msaws.getPresets().getPresets());\r
149 \r
150                         // Using presets\r
151                         PresetManager<AACon> presets = msaws.getPresets();\r
152                         String jobId = msaws.presetAnalize(fsl,\r
153                                         presets.getPresetByName("Quick conservation"));\r
154                         ScoreManager result = msaws.getAnnotation(jobId);\r
155                         assertNotNull(result);\r
156                         assertEquals(result.asSet().size(), 13);\r
157 \r
158                         jobId = msaws.presetAnalize(fsl,\r
159                                         presets.getPresetByName("Slow conservation"));\r
160                         result = msaws.getAnnotation(jobId);\r
161                         assertNotNull(result);\r
162                         assertEquals(result.asSet().size(), 5);\r
163 \r
164                         jobId = msaws.presetAnalize(fsl,\r
165                                         presets.getPresetByName("Complete conservation"));\r
166                         result = msaws.getAnnotation(jobId);\r
167                         assertNotNull(result);\r
168                         assertEquals(result.asSet().size(), 18);\r
169 \r
170                 } catch (UnsupportedRuntimeException e) {\r
171                         e.printStackTrace();\r
172                         fail(e.getMessage());\r
173                 } catch (LimitExceededException e) {\r
174                         e.printStackTrace();\r
175                         fail(e.getMessage());\r
176                 } catch (JobSubmissionException e) {\r
177                         e.printStackTrace();\r
178                         fail(e.getMessage());\r
179                 } catch (ResultNotAvailableException e) {\r
180                         e.printStackTrace();\r
181                         fail(e.getMessage());\r
182                 } catch (WrongParameterException e) {\r
183                         e.printStackTrace();\r
184                         fail(e.getMessage());\r
185                 }\r
186 \r
187         }\r
188 \r
189         @Test(groups = {AllTestSuit.test_group_webservices})\r
190         public void testCustomAnalize() throws FileNotFoundException, IOException {\r
191 \r
192                 String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()\r
193                                 + File.separator;\r
194 \r
195                 List<FastaSequence> fsl = SequenceUtil.readFasta(new FileInputStream(\r
196                                 CURRENT_DIRECTORY + "testsrc" + File.separator + "testdata"\r
197                                                 + File.separator + "TO1381.fasta.aln"));\r
198 \r
199                 // Using options\r
200                 RunnerConfig<AACon> options = msaws.getRunnerOptions();\r
201                 // System.out.println(options.getArguments());\r
202 \r
203                 try {\r
204                         options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
205                         // options.getArgument("SMERFS Column Scoring Method")\r
206                         // .setDefaultValue("MAX_SCORE");\r
207                         // options.getArgument("SMERFS Gap Threshhold").setDefaultValue("1");\r
208                         String jobId = msaws.customAnalize(fsl, options.getArguments());\r
209                         ScoreManager result = msaws.getAnnotation(jobId);\r
210                         assertNotNull(result);\r
211                         assertEquals(result.asSet().size(), 1);\r
212                         assertEquals(result.asSet().iterator().next().getScores().get(0),\r
213                                         0.698f);\r
214 \r
215                         options.getArgument("Calculation method").setDefaultValue("SMERFS");\r
216                         options.removeArgument("Normalize");\r
217                         System.out.println(options);\r
218                         jobId = msaws.customAnalize(fsl, options.getArguments());\r
219                         result = msaws.getAnnotation(jobId);\r
220                         assertNotNull(result);\r
221                         assertEquals(result.asSet().size(), 1);\r
222                         assertEquals(result.asSet().iterator().next().getScores().get(0),\r
223                                         0.401f);\r
224 \r
225                 } catch (WrongParameterException e) {\r
226                         e.printStackTrace();\r
227                         fail(e.getMessage());\r
228                 } catch (UnsupportedRuntimeException e) {\r
229                         e.printStackTrace();\r
230                         fail(e.getMessage());\r
231                 } catch (LimitExceededException e) {\r
232                         e.printStackTrace();\r
233                         fail(e.getMessage());\r
234                 } catch (JobSubmissionException e) {\r
235                         e.printStackTrace();\r
236                         fail(e.getMessage());\r
237                 } catch (ResultNotAvailableException e) {\r
238                         e.printStackTrace();\r
239                         fail(e.getMessage());\r
240                 }\r
241         }\r
242 }\r