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