Class |
Line # |
Actions |
|||
---|---|---|---|---|---|
ParameterUtilsTest | 53 | 51 | 13 |
1 | /* | |
2 | * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) | |
3 | * Copyright (C) $$Year-Rel$$ 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.jws2; | |
22 | ||
23 | import java.util.Locale; | |
24 | ||
25 | import static org.testng.AssertJUnit.assertEquals; | |
26 | import static org.testng.AssertJUnit.assertFalse; | |
27 | import static org.testng.AssertJUnit.assertTrue; | |
28 | ||
29 | import jalview.bin.Cache; | |
30 | import jalview.bin.Console; | |
31 | import jalview.gui.JvOptionPane; | |
32 | import jalview.ws.jabaws.JalviewJabawsTestUtils; | |
33 | import jalview.ws.jws2.jabaws2.Jws2Instance; | |
34 | ||
35 | import java.util.ArrayList; | |
36 | import java.util.Iterator; | |
37 | import java.util.List; | |
38 | ||
39 | import org.testng.annotations.BeforeClass; | |
40 | import org.testng.annotations.Test; | |
41 | ||
42 | import compbio.metadata.Option; | |
43 | import compbio.metadata.Parameter; | |
44 | import compbio.metadata.Preset; | |
45 | import compbio.metadata.PresetManager; | |
46 | import compbio.metadata.WrongParameterException; | |
47 | ||
48 | /* | |
49 | * All methods in this class are set to the Network group because setUpBeforeClass will fail | |
50 | * if there is no network. | |
51 | */ | |
52 | @Test(singleThreaded = true) | |
53 | public class ParameterUtilsTest | |
54 | { | |
55 | ||
56 | 0 | @BeforeClass(alwaysRun = true) |
57 | public void setUpJvOptionPane() | |
58 | { | |
59 | 0 | JvOptionPane.setInteractiveMode(false); |
60 | 0 | JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION); |
61 | } | |
62 | ||
63 | /* | |
64 | * To limit tests to specify services, add them to this list; leave list empty | |
65 | * to test all | |
66 | */ | |
67 | private static List<String> serviceTests = new ArrayList<String>(); | |
68 | ||
69 | private static Jws2Discoverer disc = null; | |
70 | ||
71 | 0 | @BeforeClass(alwaysRun = true) |
72 | public static void setUpBeforeClass() throws Exception | |
73 | { | |
74 | 0 | serviceTests.add("AAConWS".toLowerCase(Locale.ROOT)); |
75 | 0 | Cache.loadProperties("test/jalview/io/testProps.jvprops"); |
76 | 0 | Console.initLogger(); |
77 | 0 | disc = JalviewJabawsTestUtils.getJabawsDiscoverer(); |
78 | } | |
79 | ||
80 | 0 | @Test(groups = { "Network" }) |
81 | public void testWriteParameterSet() throws WrongParameterException | |
82 | { | |
83 | 0 | for (Jws2Instance service : disc.getServices()) |
84 | { | |
85 | 0 | if (isForTesting(service)) |
86 | { | |
87 | ||
88 | 0 | List<Preset> prl = null; |
89 | 0 | PresetManager prman = service.getPresets(); |
90 | 0 | if (prman == null) |
91 | { | |
92 | 0 | continue; |
93 | } | |
94 | 0 | prl = prman.getPresets(); |
95 | 0 | if (prl == null) |
96 | { | |
97 | 0 | continue; |
98 | } | |
99 | 0 | for (Preset pr : prl) |
100 | { | |
101 | 0 | List<String> writeparam = null; |
102 | 0 | List<String> readparam = null; |
103 | 0 | writeparam = ParameterUtils.writeParameterSet( |
104 | pr.getArguments(service.getRunnerConfig()), " "); | |
105 | 0 | List<Option> pset = ParameterUtils.processParameters(writeparam, |
106 | service.getRunnerConfig(), " "); | |
107 | 0 | readparam = ParameterUtils.writeParameterSet(pset, " "); |
108 | 0 | Iterator<String> o = pr.getOptions().iterator(); |
109 | 0 | Iterator<String> s = writeparam.iterator(); |
110 | 0 | Iterator<String> t = readparam.iterator(); |
111 | 0 | boolean failed = false; |
112 | 0 | while (s.hasNext() && t.hasNext()) |
113 | { | |
114 | 0 | String on = o.next(); |
115 | 0 | String sn = s.next(); |
116 | 0 | String st = t.next(); |
117 | 0 | final String errorMsg = "Original was " + on + " Phase 1 wrote " |
118 | + sn + "\tPhase 2 wrote " + st; | |
119 | 0 | assertEquals(errorMsg, sn, st); |
120 | 0 | assertEquals(errorMsg, sn, on); |
121 | } | |
122 | } | |
123 | } | |
124 | } | |
125 | } | |
126 | ||
127 | /** | |
128 | * Returns true if the service is in the list of the ones we chose to test, | |
129 | * _or_ the list is empty (test all) | |
130 | * | |
131 | * @param service | |
132 | * @return | |
133 | */ | |
134 | 0 | public boolean isForTesting(Jws2Instance service) |
135 | { | |
136 | 0 | return serviceTests.size() == 0 || serviceTests |
137 | .contains(service.serviceType.toLowerCase(Locale.ROOT)); | |
138 | } | |
139 | ||
140 | 0 | @Test(groups = { "Network" }) |
141 | public void testCopyOption() | |
142 | { | |
143 | 0 | for (Jws2Instance service : disc.getServices()) |
144 | { | |
145 | 0 | if (isForTesting(service)) |
146 | { | |
147 | 0 | List<Option<?>> options = service.getRunnerConfig().getOptions(); |
148 | 0 | for (Option<?> o : options) |
149 | { | |
150 | 0 | System.out.println("Testing copyOption for option " + o.getName() |
151 | + " of " + service.getActionText()); | |
152 | 0 | Option<?> cpy = ParameterUtils.copyOption(o); |
153 | 0 | assertTrue(cpy.equals(o)); |
154 | 0 | assertEquals(cpy.getName(), o.getName()); |
155 | 0 | assertFalse(cpy == o); |
156 | // todo more assertions? | |
157 | } | |
158 | } | |
159 | } | |
160 | } | |
161 | ||
162 | /** | |
163 | */ | |
164 | 0 | @Test(groups = { "Network" }) |
165 | public void testCopyParameter() | |
166 | { | |
167 | 0 | for (Jws2Instance service : disc.getServices()) |
168 | { | |
169 | 0 | if (isForTesting(service)) |
170 | { | |
171 | 0 | List<Parameter> parameters = service.getRunnerConfig() |
172 | .getParameters(); | |
173 | 0 | for (Parameter o : parameters) |
174 | { | |
175 | 0 | System.out.println("Testing copyParameter for parameter " |
176 | + o.getName() + " of " + service.getActionText()); | |
177 | 0 | Parameter cpy = ParameterUtils.copyParameter(o); |
178 | 0 | assertTrue(cpy.equals(o)); |
179 | 0 | assertFalse(cpy == o); |
180 | 0 | assertEquals(cpy.getName(), o.getName()); |
181 | // todo more assertions? | |
182 | } | |
183 | } | |
184 | } | |
185 | } | |
186 | } |