Add testing dirs
[proteocache.git] / testsrc / compbio / ws / server / RegistryWSTester.java
1 package compbio.ws.server;\r
2 \r
3 import static org.testng.Assert.assertNotNull;\r
4 import static org.testng.Assert.assertTrue;\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.Arrays;\r
13 import java.util.List;\r
14 import java.util.Set;\r
15 \r
16 import javax.xml.ws.WebServiceException;\r
17 \r
18 import org.testng.annotations.Test;\r
19 \r
20 import compbio.data.msa.MsaWS;\r
21 import compbio.data.sequence.FastaSequence;\r
22 import compbio.data.sequence.SequenceUtil;\r
23 import compbio.metadata.AllTestSuit;\r
24 import compbio.metadata.ChunkHolder;\r
25 import compbio.metadata.JobStatus;\r
26 import compbio.metadata.JobSubmissionException;\r
27 import compbio.metadata.ResultNotAvailableException;\r
28 import compbio.ws.client.Jws2Client;\r
29 import compbio.ws.client.Services;\r
30 import compbio.ws.client.WSTesterTester;\r
31 \r
32 public class RegistryWSTester {\r
33 \r
34         @Test(groups = {AllTestSuit.test_group_webservices,\r
35                         AllTestSuit.test_group_windows_only})\r
36         public void testGetSupportedServices() {\r
37                 try {\r
38                         compbio.data.msa.RegistryWS reg = Jws2Client\r
39                                         .connectToRegistry(WSTesterTester.SERVER);\r
40                         System.out.println(reg.getSupportedServices());\r
41                         Set<Services> supserv = reg.getSupportedServices();\r
42                         assertTrue(supserv.containsAll(Arrays.asList(new Services[]{\r
43                                         Services.AAConWS, Services.ClustalOWS, Services.IUPredWS,\r
44                                         Services.MuscleWS, Services.ClustalWS, Services.JronnWS})));\r
45                 } catch (ConnectException e) {\r
46                         e.printStackTrace();\r
47                         fail(e.getLocalizedMessage());\r
48                 } catch (WebServiceException e) {\r
49                         e.printStackTrace();\r
50                         fail(e.getLocalizedMessage());\r
51                 }\r
52         }\r
53         @Test(groups = {AllTestSuit.test_group_webservices})\r
54         public void testTestService() {\r
55                 compbio.data.msa.RegistryWS reg = null;\r
56                 try {\r
57                         reg = Jws2Client.connectToRegistry(WSTesterTester.SERVER);\r
58                         assertNotNull(reg.testService(Services.AAConWS));\r
59                 } catch (ConnectException e) {\r
60                         e.printStackTrace();\r
61                         fail(e.getLocalizedMessage());\r
62                 } catch (WebServiceException e) {\r
63                         e.printStackTrace();\r
64                         fail(e.getLocalizedMessage());\r
65                 }\r
66         }\r
67 \r
68         @Test(dependsOnMethods = {"testTestService"}, groups = {AllTestSuit.test_group_webservices})\r
69         public void testIsOperating() {\r
70                 try {\r
71                         compbio.data.msa.RegistryWS reg = Jws2Client\r
72                                         .connectToRegistry(WSTesterTester.SERVER);\r
73                         assertTrue(reg.isOperating(Services.AAConWS));\r
74                 } catch (ConnectException e) {\r
75                         e.printStackTrace();\r
76                         fail(e.getLocalizedMessage());\r
77                 } catch (WebServiceException e) {\r
78                         e.printStackTrace();\r
79                         fail(e.getLocalizedMessage());\r
80                 }\r
81         }\r
82 \r
83         @Test(dependsOnMethods = {"testTestService"}, groups = {AllTestSuit.test_group_webservices})\r
84         public void testGetLastTestedOn() {\r
85                 try {\r
86                         compbio.data.msa.RegistryWS reg = Jws2Client\r
87                                         .connectToRegistry(WSTesterTester.SERVER);\r
88                         assertNotNull(reg.getLastTestedOn(Services.AAConWS));\r
89                 } catch (ConnectException e) {\r
90                         e.printStackTrace();\r
91                         fail(e.getLocalizedMessage());\r
92                 } catch (WebServiceException e) {\r
93                         e.printStackTrace();\r
94                         fail(e.getLocalizedMessage());\r
95                 }\r
96         }\r
97 \r
98         @Test(dependsOnMethods = {"testTestService"}, groups = {AllTestSuit.test_group_webservices})\r
99         public void testGetLastTested() {\r
100                 try {\r
101                         Thread.sleep(1000);\r
102                 } catch (InterruptedException e) {\r
103                         e.printStackTrace();\r
104                         fail(e.getMessage());\r
105                 }\r
106                 try {\r
107                         compbio.data.msa.RegistryWS reg = Jws2Client\r
108                                         .connectToRegistry(WSTesterTester.SERVER);\r
109                         System.out.println(reg.getLastTested(Services.AAConWS));\r
110                         assertTrue(reg.getLastTested(Services.AAConWS) > 0);\r
111                 } catch (ConnectException e) {\r
112                         e.printStackTrace();\r
113                         fail(e.getLocalizedMessage());\r
114                 } catch (WebServiceException e) {\r
115                         e.printStackTrace();\r
116                         fail(e.getLocalizedMessage());\r
117                 }\r
118         }\r
119 \r
120         @Test(groups = {AllTestSuit.test_group_webservices})\r
121         public void testTestAllServices() {\r
122                 try {\r
123                         compbio.data.msa.RegistryWS reg = Jws2Client\r
124                                         .connectToRegistry(WSTesterTester.SERVER);\r
125                         System.out.println(reg.testAllServices());\r
126                 } catch (ConnectException e) {\r
127                         e.printStackTrace();\r
128                         fail(e.getLocalizedMessage());\r
129                 } catch (WebServiceException e) {\r
130                         e.printStackTrace();\r
131                         fail(e.getLocalizedMessage());\r
132                 }\r
133         }\r
134 \r
135         @Test(groups = {AllTestSuit.test_group_webservices})\r
136         public void testProgressReporting() {\r
137                 MsaWS service = null;\r
138                 try {\r
139                         service = (MsaWS) Jws2Client.connect(\r
140                                         "http://www.compbio.dundee.ac.uk/jabaws",\r
141                                         // "http://webserv1.cluster.lifesci.dundee.ac.uk:8089/jabaws",\r
142                                         Services.ProbconsWS);\r
143                         File input = new File(AllTestSuit.TEST_DATA_PATH_ABSOLUTE\r
144                                         + "200x500Protein.fasta");\r
145                         assertTrue(input.exists());\r
146                         List<FastaSequence> fs = SequenceUtil\r
147                                         .readFasta(new FileInputStream(input));\r
148                         String jobId = service.align(fs);\r
149                         Thread.sleep(5000);\r
150                         ChunkHolder pos = null;\r
151                         while (service.getJobStatus(jobId) == JobStatus.RUNNING) {\r
152                                 if (pos == null) {\r
153                                         pos = service.pullExecStatistics(jobId, 0);\r
154                                 } else {\r
155                                         pos = service.pullExecStatistics(jobId,\r
156                                                         pos.getNextPosition());\r
157                                 }\r
158                                 Thread.sleep(10);\r
159                                 System.out.print(pos.getChunk());\r
160                         }\r
161                         System.out.println();\r
162                         System.out.println(service.getResult(jobId));\r
163                 } catch (ConnectException e) {\r
164                         e.printStackTrace();\r
165                         fail(e.getLocalizedMessage());\r
166                 } catch (WebServiceException e) {\r
167                         e.printStackTrace();\r
168                         fail(e.getLocalizedMessage());\r
169                 } catch (ResultNotAvailableException e) {\r
170                         e.printStackTrace();\r
171                         fail(e.getLocalizedMessage());\r
172                 } catch (FileNotFoundException e) {\r
173                         e.printStackTrace();\r
174                         fail(e.getLocalizedMessage());\r
175                 } catch (IOException e) {\r
176                         e.printStackTrace();\r
177                         fail(e.getLocalizedMessage());\r
178                 } catch (JobSubmissionException e) {\r
179                         e.printStackTrace();\r
180                         fail(e.getLocalizedMessage());\r
181                 } catch (InterruptedException e) {\r
182                         e.printStackTrace();\r
183                         fail(e.getLocalizedMessage());\r
184                 }\r
185         }\r
186 \r
187         @Test(groups = {AllTestSuit.test_group_webservices})\r
188         public void testPullRunningJob() {\r
189                 MsaWS service = null;\r
190                 try {\r
191                         service = (MsaWS) Jws2Client.connect(\r
192                                         "http://webserv1.cluster.lifesci.dundee.ac.uk:8089/jabaws",\r
193                                         Services.ProbconsWS);\r
194                         String jobId = "@Probcons#158079030012566";\r
195                         ChunkHolder pos = null;\r
196                         while (service.getJobStatus(jobId) == JobStatus.RUNNING) {\r
197                                 if (pos == null) {\r
198                                         pos = service.pullExecStatistics(jobId, 0);\r
199                                 } else {\r
200                                         pos = service.pullExecStatistics(jobId,\r
201                                                         pos.getNextPosition());\r
202                                 }\r
203                                 Thread.sleep(10);\r
204                                 System.out.print(pos.getChunk());\r
205                         }\r
206                         System.out.println();\r
207                         System.out.println(service.getResult(jobId));\r
208                 } catch (ConnectException e) {\r
209                         e.printStackTrace();\r
210                         fail(e.getLocalizedMessage());\r
211                 } catch (WebServiceException e) {\r
212                         e.printStackTrace();\r
213                         fail(e.getLocalizedMessage());\r
214                 } catch (ResultNotAvailableException e) {\r
215                         e.printStackTrace();\r
216                         fail(e.getLocalizedMessage());\r
217                 } catch (InterruptedException e) {\r
218                         e.printStackTrace();\r
219                         fail(e.getLocalizedMessage());\r
220                 }\r
221         }\r
222 }\r