1 package compbio.ws.client;
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;
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;
18 import javax.xml.ws.WebServiceException;
20 import org.testng.annotations.BeforeTest;
21 import org.testng.annotations.Test;
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.ScoreManager;
31 import compbio.data.sequence.SequenceUtil;
32 import compbio.data.sequence.UnknownFileFormatException;
33 import compbio.metadata.AllTestSuit;
34 import compbio.metadata.JobSubmissionException;
35 import compbio.metadata.LimitExceededException;
36 import compbio.metadata.Option;
37 import compbio.metadata.PresetManager;
38 import compbio.metadata.ResultNotAvailableException;
39 import compbio.metadata.RunnerConfig;
40 import compbio.metadata.UnsupportedRuntimeException;
41 import compbio.metadata.WrongParameterException;
42 import compbio.runner.conservation.AACon;
43 import compbio.util.SysPrefs;
44 import compbio.ws.server.RNAalifoldWS;
47 public class TestRNAalifoldWS {
49 SequenceAnnotation<RNAalifoldWS> foldws;
51 @BeforeTest(groups = {AllTestSuit.test_group_webservices})
52 void initConnection() {
55 JABAService client = Jws2Client.connect(
56 "http://localhost:8080/jabaws", Services.RNAalifoldWS);
57 foldws = (SequenceAnnotation<RNAalifoldWS>) client;
58 } catch (ConnectException e) {
61 } catch (WebServiceException e) {
68 @Test(groups = {AllTestSuit.test_group_webservices})
69 public void testFold() throws FileNotFoundException, IOException,
70 UnknownFileFormatException {
72 // String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory()
75 Alignment aln = ClustalAlignmentUtil.readClustalFile(new FileInputStream(
76 AllTestSuit.test_input_aln));
78 List<FastaSequence> fsl = aln.getSequences();
81 List<Option<RNAalifoldWS>> options = new ArrayList<Option<RNAalifoldWS>>();
82 options.add(foldws.getRunnerOptions().getArgumentByOptionName("--mis"));
83 options.add(foldws.getRunnerOptions().getArgumentByOptionName("-p"));
84 options.add(foldws.getRunnerOptions().getArgumentByOptionName("--MEA"));
86 System.out.println("TestRNAalifoldWS: print options: " + options.toString());
88 String jobId = foldws.customAnalize(fsl, options);
89 System.out.println("J: " + jobId);
90 ScoreManager result = foldws.getAnnotation(jobId);
91 System.out.println("fold results: \n" + result.toString());
93 Writer writer = new OutputStreamWriter(System.out);
94 result.writeOut(writer);
96 assertNotNull(result);
98 } catch (UnsupportedRuntimeException e) {
100 fail(e.getMessage());
101 } catch (LimitExceededException e) {
103 fail(e.getMessage());
104 } catch (JobSubmissionException e) {
106 fail(e.getMessage());
107 } catch (ResultNotAvailableException e) {
109 fail(e.getMessage());
110 } catch (WrongParameterException e) {
112 fail(e.getMessage());