4 package jalview.ws.rest;
6 import static org.junit.Assert.*;
8 import java.io.BufferedReader;
9 import java.io.IOException;
10 import java.util.ArrayList;
11 import java.util.Hashtable;
12 import java.util.List;
15 import jalview.datamodel.AlignmentI;
16 import jalview.datamodel.AlignmentView;
17 import jalview.gui.AlignFrame;
18 import jalview.io.FileParse;
19 import jalview.ws.rest.InputType;
20 import jalview.ws.rest.params.SeqGroupIndexVector;
22 import org.junit.AfterClass;
23 import org.junit.BeforeClass;
24 import org.junit.Test;
30 public class ShmmrRSBSService
34 public void testSeparatorListToArrayForRestServiceDescriptions()
37 "separatorListToArray is faulty.",
38 RestServiceDescription.separatorListToArray(
39 "foo=',',min='foo',max='1,2,3',fa=','", ",").length == 4);
40 assertTrue("separatorListToArray is faulty.",
41 RestServiceDescription.separatorListToArray(
42 "minsize='2', sep=','", ",").length != 2); // probably should come as 2
46 public void testShmmrService()
50 "Test Rsd Exchange using using default Shmmr service failed.",
51 testRsdExchange("Test using default Shmmr service",
52 RestClient.makeShmmrRestClient().service));
55 public void testShmmrServiceDataprep() throws Exception
57 RestClient _rc = RestClient.makeShmmrRestClient();
59 AlignFrame alf = new jalview.io.FileLoader(false).LoadFileWaitTillLoaded("examples/testdata/smad.fa", jalview.io.FormatAdapter.FILE);
60 assertNotNull("Couldn't find test data.",alf);
61 alf.loadJalviewDataFile("examples/testdata/smad_groups.jva",
62 jalview.io.FormatAdapter.FILE, null, null);
63 assertTrue("Couldn't load the test data's annotation file (should be 5 groups but found "+alf.getViewport().getAlignment().getGroups().size()+").", alf.getViewport().getAlignment().getGroups().size()==5);
65 RestClient rc = new RestClient(_rc.service, alf, true);
69 assertNotNull("Couldn't creat RestClient job.",rc);
70 jalview.bin.Cache.initLogger();
71 RestJob rjb = new RestJob(0, new RestJobThread(rc),rc.av.getAlignment(),null);
72 rjb.setAlignmentForInputs(rc.service.getInputParams().values(), rc.av.getAlignment());
73 for (Map.Entry<String,InputType> e:rc.service.getInputParams().entrySet()) {
74 System.out.println("For Input '"+e.getKey()+":\n"+e.getValue().formatForInput(rjb).getContentLength());
78 private static boolean testRsdExchange(String desc, String servicestring)
82 RestServiceDescription newService = new RestServiceDescription(
84 if (!newService.isValid())
86 throw new Error("Failed to create service from '" + servicestring
87 + "'.\n" + newService.getInvalidMessage());
89 return testRsdExchange(desc, newService);
92 System.err.println("Failed for service (" + desc + "): "
99 private static boolean testRsdExchange(String desc,
100 RestServiceDescription service)
104 String fromservicetostring = service.toString();
105 RestServiceDescription newService = new RestServiceDescription(
106 fromservicetostring);
107 if (!newService.isValid())
109 throw new Error("Failed to create service from '"
110 + fromservicetostring + "'.\n"
111 + newService.getInvalidMessage());
114 if (!service.equals(newService))
116 System.err.println("Failed for service (" + desc + ").");
117 System.err.println("Original service and parsed service differ.");
118 System.err.println("Original: " + fromservicetostring);
119 System.err.println("Parsed : " + newService.toString());
122 } catch (Throwable x)
124 System.err.println("Failed for service (" + desc + "): "
125 + service.toString());