Add testing dirs
[proteocache.git] / testsrc / compbio / ws / client / TestRNAalifoldWS.java
1         package compbio.ws.client;
2
3 import static org.testng.Assert.assertNotNull;
4 import static org.testng.Assert.fail;
5
6 import java.io.FileInputStream;
7 import java.io.FileNotFoundException;
8 import java.io.IOException;
9 import java.io.OutputStreamWriter;
10 import java.io.Writer;
11 import java.net.ConnectException;
12 import java.util.ArrayList;
13 import java.util.List;
14
15 import javax.xml.ws.WebServiceException;
16
17 import org.testng.annotations.BeforeTest;
18 import org.testng.annotations.Test;
19
20 import compbio.data.msa.JABAService;
21 import compbio.data.msa.SequenceAnnotation;
22 import compbio.data.sequence.Alignment;
23 import compbio.data.sequence.ClustalAlignmentUtil;
24 import compbio.data.sequence.FastaSequence;
25 import compbio.data.sequence.RNAStructScoreManager;
26 import compbio.data.sequence.UnknownFileFormatException;
27 import compbio.metadata.AllTestSuit;
28 import compbio.metadata.JobSubmissionException;
29 import compbio.metadata.LimitExceededException;
30 import compbio.metadata.Option;
31 import compbio.metadata.ResultNotAvailableException;
32 import compbio.metadata.UnsupportedRuntimeException;
33 import compbio.metadata.WrongParameterException;
34 import compbio.ws.server.RNAalifoldWS;
35
36
37 public class TestRNAalifoldWS {
38         
39         SequenceAnnotation<RNAalifoldWS> foldws;
40 //      RNAalifoldWS foldws;
41         
42         @BeforeTest(groups = {AllTestSuit.test_group_webservices})
43         void initConnection() {
44                 
45                 try {
46                         JABAService client = Jws2Client.connect(
47                                         "http://localhost:8080/jabaws", Services.RNAalifoldWS);
48 //                      foldws = (RNAalifoldWS) client;
49                         foldws = (SequenceAnnotation<RNAalifoldWS>) client;
50                 } catch (ConnectException e) {
51                         e.printStackTrace();
52                         fail(e.getMessage());
53                 } catch (WebServiceException e) {
54                         e.printStackTrace();
55                         fail(e.getMessage());
56                 }
57         }
58
59         
60         @Test(groups = {AllTestSuit.test_group_webservices})
61         public void testFold() throws FileNotFoundException, IOException,
62                         UnknownFileFormatException {
63                 
64                 Alignment aln = ClustalAlignmentUtil.readClustalFile(new FileInputStream(
65                                 AllTestSuit.test_input_aln));
66                 
67                 List<FastaSequence> fsl = aln.getSequences();
68                 
69                 try {
70                         List<Option<RNAalifoldWS>> options  = new ArrayList<Option<RNAalifoldWS>>();
71                         options.add(foldws.getRunnerOptions().getArgumentByOptionName("--mis"));
72                         options.add(foldws.getRunnerOptions().getArgumentByOptionName("-p"));
73                         options.add(foldws.getRunnerOptions().getArgumentByOptionName("--MEA"));
74                         
75                         System.out.println("TestRNAalifoldWS: print options: " + options.toString());
76                         
77                         String jobId = foldws.customAnalize(fsl, options);
78                         System.out.println("J: " + jobId);
79                         RNAStructScoreManager result = (RNAStructScoreManager)foldws.getAnnotation(jobId);
80
81                         Writer writer = new OutputStreamWriter(System.out);
82                         result.writeOut(writer);
83                         
84                         assertNotNull(result);
85                         
86                 } catch (UnsupportedRuntimeException e) {
87                         e.printStackTrace();
88                         fail(e.getMessage());
89                 } catch (LimitExceededException e) {
90                         e.printStackTrace();
91                         fail(e.getMessage());
92                 } catch (JobSubmissionException e) {
93                         e.printStackTrace();
94                         fail(e.getMessage());
95                 } catch (ResultNotAvailableException e) {
96                         e.printStackTrace();
97                         fail(e.getMessage());
98                 } catch (WrongParameterException e) {
99                         e.printStackTrace();
100                         fail(e.getMessage());
101                 }
102         }
103 }
104         
105
106