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 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) 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 fsl = aln.getSequences(); try { List> options = new ArrayList>(); 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()); } } }