JAL-1499 simple test to check JABA client can
authorJim Procter <j.procter@dundee.ac.uk>
Fri, 3 Oct 2014 09:54:47 +0000 (10:54 +0100)
committerJim Procter <j.procter@dundee.ac.uk>
Fri, 3 Oct 2014 09:54:47 +0000 (10:54 +0100)
JAL-1499 send/receive data to JABA server

test/jalview/ws/jabaws/MinJabawsClientTests.java [new file with mode: 0644]

diff --git a/test/jalview/ws/jabaws/MinJabawsClientTests.java b/test/jalview/ws/jabaws/MinJabawsClientTests.java
new file mode 100644 (file)
index 0000000..5c9a192
--- /dev/null
@@ -0,0 +1,84 @@
+package jalview.ws.jabaws;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.function.Consumer;
+
+import jalview.ws.jws2.jabaws2.Jws2Instance;
+import jalview.ws.jws2.jabaws2.Jws2InstanceFactory;
+
+import org.junit.Test;
+
+import compbio.data.msa.Category;
+import compbio.data.msa.JABAService;
+import compbio.data.msa.MsaWS;
+import compbio.data.msa.RegistryWS;
+import compbio.data.sequence.FastaSequence;
+import compbio.metadata.JobStatus;
+import compbio.ws.client.Jws2Client;
+import compbio.ws.client.Services;
+
+public class MinJabawsClientTests {
+
+       @SuppressWarnings("rawtypes")
+       @Test
+       public void msaTest() throws Exception {
+               String url;
+               RegistryWS registry = Jws2Client
+                               .connectToRegistry(url = "http://www.compbio.dundee.ac.uk/jabaws");
+               if (registry != null) {
+
+                       MsaWS msaservice = null;
+                       for (Services service : registry.getSupportedServices()) {
+                               if (service.equals(Services.ClustalOWS)) {
+                                       msaservice = (MsaWS) Jws2Client.connect(url, service);
+                                       if (msaservice != null) {
+                                               break;
+                                       }
+                               }
+                       }
+                       if (msaservice == null) {
+                               fail("couldn't find a clustalO service on the public registry");
+                       }
+                       FastaSequence fsq = new FastaSequence("seqA",
+                                       "SESESESESESESESSESESSESESESESESESESESESEEEEEESSESESESESSSSESESESESESESE");
+                       List<FastaSequence> iseqs = new ArrayList<FastaSequence>();
+                       for (int i = 0; i < 9; i++) {
+                               iseqs.add(new FastaSequence(fsq.getId() + i, fsq.getSequence()
+                                               + fsq.getSequence().substring(i + 3, i + 3 + i)));
+                       }
+
+                       String jobid = msaservice.align(iseqs);
+                       if (jobid != null) {
+                               JobStatus js = null;
+                               do {
+                                       try {
+                                               Thread.sleep(500);
+                                       } catch (InterruptedException q) {
+                                       }
+                                       ;
+                                       js = msaservice.getJobStatus(jobid);
+                               } while (!js.equals(JobStatus.FAILED)
+                                               && !js.equals(JobStatus.CANCELLED)
+                                               && !js.equals(JobStatus.FINISHED));
+                               assertEquals("Trial alignment failed. State was " + js.name(),
+                                               js, JobStatus.FINISHED);
+                               assertEquals(
+                                               "Mismatch in number of input and result sequences - assume alignment service wasn't interacted with correctly",
+                                               msaservice.getResult(jobid).getSequences().size(),
+                                               iseqs.size());
+                               msaservice.getResult(jobid).getSequences()
+                                               .forEach(new Consumer<FastaSequence>() {
+                                                       @Override
+                                                       public void accept(FastaSequence t) {
+                                                               System.out.println(">"+t.getId());
+                                                               System.out.println(t.getFormattedFasta());
+                                                       }
+                                               });
+                       }
+
+               }
+       }
+}