package compbio.ws.client; import compbio.metadata.AllTestSuit; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.fail; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Writer; import java.io.OutputStreamWriter; 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.FoldWS; import compbio.data.msa.JABAService; import compbio.data.msa.SequenceAnnotation; import compbio.data.sequence.Alignment; import compbio.data.sequence.ClustalAlignmentUtil; import compbio.data.sequence.ConservationMethod; import compbio.data.sequence.FastaSequence; import compbio.data.sequence.ScoreManager; import compbio.data.sequence.SequenceUtil; import compbio.data.sequence.UnknownFileFormatException; import compbio.metadata.AllTestSuit; import compbio.metadata.JobSubmissionException; import compbio.metadata.LimitExceededException; import compbio.metadata.Option; import compbio.metadata.PresetManager; import compbio.metadata.ResultNotAvailableException; import compbio.metadata.RunnerConfig; import compbio.metadata.UnsupportedRuntimeException; import compbio.metadata.WrongParameterException; import compbio.runner.conservation.AACon; import compbio.util.SysPrefs; import compbio.ws.server.RNAalifoldWS; public class TestRNAalifoldWS { SequenceAnnotation foldws; @BeforeTest(groups = {AllTestSuit.test_group_webservices}) void initConnection() { try { JABAService client = Jws2Client.connect( "http://localhost:8080/jabaws", Services.RNAalifoldWS); 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 { // String CURRENT_DIRECTORY = SysPrefs.getCurrentDirectory() // + File.separator; 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); ScoreManager result = foldws.getAnnotation(jobId); System.out.println("fold results: \n" + result.toString()); 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()); } } }