JAL-1645 Version-Rel Version 2.9 Year-Rel 2015 Licensing glob
[jalview.git] / test / jalview / ws / rest / ShmmrRSBSService.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
3  * Copyright (C) 2015 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3
10  * of the License, or (at your option) any later version.
11  *  
12  * Jalview is distributed in the hope that it will be useful, but 
13  * WITHOUT ANY WARRANTY; without even the implied warranty 
14  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
15  * PURPOSE.  See the GNU General Public License for more details.
16  * 
17  * You should have received a copy of the GNU General Public License
18  * along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
19  * The Jalview Authors are detailed in the 'AUTHORS' file.
20  */
21 package jalview.ws.rest;
22
23 import static org.testng.AssertJUnit.assertNotNull;
24 import static org.testng.AssertJUnit.assertTrue;
25
26 import jalview.gui.AlignFrame;
27
28 import java.util.Map;
29
30 import org.testng.annotations.Test;
31
32 /**
33  * @author jimp
34  * 
35  */
36 public class ShmmrRSBSService
37 {
38
39   @Test(groups = { "Functional" })
40   public void testShmmrService()
41   {
42
43     assertTrue(
44             "Test Rsd Exchange using using default Shmmr service failed.",
45             testRsdExchange("Test using default Shmmr service",
46                     RestClient.makeShmmrRestClient().service));
47   }
48
49   @Test(groups = { "Functional" })
50   public void testShmmrServiceDataprep() throws Exception
51   {
52     RestClient _rc = RestClient.makeShmmrRestClient();
53     assertNotNull(_rc);
54     AlignFrame alf = new jalview.io.FileLoader(false)
55             .LoadFileWaitTillLoaded("examples/testdata/smad.fa",
56                     jalview.io.FormatAdapter.FILE);
57     assertNotNull("Couldn't find test data.", alf);
58     alf.loadJalviewDataFile("examples/testdata/smad_groups.jva",
59             jalview.io.FormatAdapter.FILE, null, null);
60     assertTrue(
61             "Couldn't load the test data's annotation file (should be 5 groups but found "
62                     + alf.getViewport().getAlignment().getGroups().size()
63                     + ").", alf.getViewport().getAlignment().getGroups()
64                     .size() == 5);
65
66     RestClient rc = new RestClient(_rc.service, alf, true);
67
68     assertNotNull("Couldn't creat RestClient job.", rc);
69     jalview.bin.Cache.initLogger();
70     RestJob rjb = new RestJob(0, new RestJobThread(rc),
71             rc.av.getAlignment(), null);
72     rjb.setAlignmentForInputs(rc.service.getInputParams().values(),
73             rc.av.getAlignment());
74     for (Map.Entry<String, InputType> e : rc.service.getInputParams()
75             .entrySet())
76     {
77       System.out.println("For Input '" + e.getKey() + ":\n"
78               + e.getValue().formatForInput(rjb).getContentLength());
79     }
80   }
81
82   private static boolean testRsdExchange(String desc, String servicestring)
83   {
84     try
85     {
86       RestServiceDescription newService = new RestServiceDescription(
87               servicestring);
88       if (!newService.isValid())
89       {
90         throw new Error("Failed to create service from '" + servicestring
91                 + "'.\n" + newService.getInvalidMessage());
92       }
93       return testRsdExchange(desc, newService);
94     } catch (Throwable x)
95     {
96       System.err.println("Failed for service (" + desc + "): "
97               + servicestring);
98       x.printStackTrace();
99       return false;
100     }
101   }
102
103   private static boolean testRsdExchange(String desc,
104           RestServiceDescription service)
105   {
106     try
107     {
108       String fromservicetostring = service.toString();
109       RestServiceDescription newService = new RestServiceDescription(
110               fromservicetostring);
111       if (!newService.isValid())
112       {
113         throw new Error("Failed to create service from '"
114                 + fromservicetostring + "'.\n"
115                 + newService.getInvalidMessage());
116       }
117
118       if (!service.equals(newService))
119       {
120         System.err.println("Failed for service (" + desc + ").");
121         System.err.println("Original service and parsed service differ.");
122         System.err.println("Original: " + fromservicetostring);
123         System.err.println("Parsed  : " + newService.toString());
124         return false;
125       }
126     } catch (Throwable x)
127     {
128       System.err.println("Failed for service (" + desc + "): "
129               + service.toString());
130       x.printStackTrace();
131       return false;
132     }
133     return true;
134   }
135
136 }