Add testing dirs
[proteocache.git] / testsrc / compbio / ws / client / TestRNAalifoldWS.java
diff --git a/testsrc/compbio/ws/client/TestRNAalifoldWS.java b/testsrc/compbio/ws/client/TestRNAalifoldWS.java
new file mode 100644 (file)
index 0000000..cafe9cb
--- /dev/null
@@ -0,0 +1,106 @@
+       package compbio.ws.client;
+
+import static org.testng.Assert.assertNotNull;
+import static org.testng.Assert.fail;
+
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.net.ConnectException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.ws.WebServiceException;
+
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import compbio.data.msa.JABAService;
+import compbio.data.msa.SequenceAnnotation;
+import compbio.data.sequence.Alignment;
+import compbio.data.sequence.ClustalAlignmentUtil;
+import compbio.data.sequence.FastaSequence;
+import compbio.data.sequence.RNAStructScoreManager;
+import compbio.data.sequence.UnknownFileFormatException;
+import compbio.metadata.AllTestSuit;
+import compbio.metadata.JobSubmissionException;
+import compbio.metadata.LimitExceededException;
+import compbio.metadata.Option;
+import compbio.metadata.ResultNotAvailableException;
+import compbio.metadata.UnsupportedRuntimeException;
+import compbio.metadata.WrongParameterException;
+import compbio.ws.server.RNAalifoldWS;
+
+
+public class TestRNAalifoldWS {
+       
+       SequenceAnnotation<RNAalifoldWS> foldws;
+//     RNAalifoldWS foldws;
+       
+       @BeforeTest(groups = {AllTestSuit.test_group_webservices})
+       void initConnection() {
+               
+               try {
+                       JABAService client = Jws2Client.connect(
+                                       "http://localhost:8080/jabaws", Services.RNAalifoldWS);
+//                     foldws = (RNAalifoldWS) client;
+                       foldws = (SequenceAnnotation<RNAalifoldWS>) client;
+               } catch (ConnectException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               } catch (WebServiceException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               }
+       }
+
+       
+       @Test(groups = {AllTestSuit.test_group_webservices})
+       public void testFold() throws FileNotFoundException, IOException,
+                       UnknownFileFormatException {
+               
+               Alignment aln = ClustalAlignmentUtil.readClustalFile(new FileInputStream(
+                               AllTestSuit.test_input_aln));
+               
+               List<FastaSequence> fsl = aln.getSequences();
+               
+               try {
+                       List<Option<RNAalifoldWS>> options  = new ArrayList<Option<RNAalifoldWS>>();
+                       options.add(foldws.getRunnerOptions().getArgumentByOptionName("--mis"));
+                       options.add(foldws.getRunnerOptions().getArgumentByOptionName("-p"));
+                       options.add(foldws.getRunnerOptions().getArgumentByOptionName("--MEA"));
+                       
+                       System.out.println("TestRNAalifoldWS: print options: " + options.toString());
+                       
+                       String jobId = foldws.customAnalize(fsl, options);
+                       System.out.println("J: " + jobId);
+                       RNAStructScoreManager result = (RNAStructScoreManager)foldws.getAnnotation(jobId);
+
+                       Writer writer = new OutputStreamWriter(System.out);
+                       result.writeOut(writer);
+                       
+                       assertNotNull(result);
+                       
+               } catch (UnsupportedRuntimeException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               } catch (LimitExceededException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               } catch (JobSubmissionException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               } catch (ResultNotAvailableException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               } catch (WrongParameterException e) {
+                       e.printStackTrace();
+                       fail(e.getMessage());
+               }
+       }
+}
+       
+
+