2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
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.
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.
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.
21 package jalview.ws.jws2;
23 import java.util.Locale;
24 import static org.testng.AssertJUnit.assertEquals;
25 import static org.testng.AssertJUnit.assertFalse;
26 import static org.testng.AssertJUnit.assertTrue;
28 import jalview.bin.Cache;
29 import jalview.bin.Console;
30 import jalview.gui.JvOptionPane;
31 import jalview.ws.api.ServiceWithParameters;
32 import jalview.ws.api.UIinfo;
33 import jalview.ws.jabaws.JalviewJabawsTestUtils;
34 import jalview.ws.jws2.jabaws2.Jws2Instance;
36 import java.util.ArrayList;
37 import java.util.Iterator;
38 import java.util.List;
40 import org.testng.annotations.BeforeClass;
41 import org.testng.annotations.Test;
43 import compbio.metadata.Option;
44 import compbio.metadata.Parameter;
45 import compbio.metadata.Preset;
46 import compbio.metadata.PresetManager;
47 import compbio.metadata.WrongParameterException;
50 * All methods in this class are set to the Network group because setUpBeforeClass will fail
51 * if there is no network.
53 @Test(singleThreaded = true)
54 public class ParameterUtilsTest
57 @BeforeClass(alwaysRun = true)
58 public void setUpJvOptionPane()
60 JvOptionPane.setInteractiveMode(false);
61 JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
65 * To limit tests to specify services, add them to this list; leave list empty
68 private static List<String> serviceTests = new ArrayList<>();
70 private static Jws2Discoverer disc = null;
72 @BeforeClass(alwaysRun = true)
73 public static void setUpBeforeClass() throws Exception
75 serviceTests.add("AAConWS".toLowerCase(Locale.ROOT));
76 Cache.loadProperties("test/jalview/io/testProps.jvprops");
78 disc = JalviewJabawsTestUtils.getJabawsDiscoverer();
81 @Test(groups = { "Network" })
82 public void testWriteParameterSet() throws WrongParameterException
84 for (ServiceWithParameters _service : disc.getServices())
86 if (isForTesting(_service))
88 Jws2Instance service = (Jws2Instance) _service;
90 List<Preset> prl = null;
91 PresetManager prman = service.getPresets();
96 prl = prman.getPresets();
101 for (Preset pr : prl)
103 List<String> writeparam = null;
104 List<String> readparam = null;
105 writeparam = ParameterUtils.writeParameterSet(
106 pr.getArguments(service.getRunnerConfig()), " ");
107 List<Option> pset = ParameterUtils.processParameters(writeparam,
108 service.getRunnerConfig(), " ");
109 readparam = ParameterUtils.writeParameterSet(pset, " ");
110 Iterator<String> o = pr.getOptions().iterator();
111 Iterator<String> s = writeparam.iterator();
112 Iterator<String> t = readparam.iterator();
113 boolean failed = false;
114 while (s.hasNext() && t.hasNext())
116 String on = o.next();
117 String sn = s.next();
118 String st = t.next();
119 final String errorMsg = "Original was " + on + " Phase 1 wrote "
120 + sn + "\tPhase 2 wrote " + st;
121 assertEquals(errorMsg, sn, st);
122 assertEquals(errorMsg, sn, on);
130 * Returns true if the service is in the list of the ones we chose to test,
131 * _or_ the list is empty (test all)
136 public boolean isForTesting(UIinfo service)
138 return serviceTests.size() == 0 || serviceTests
139 .contains(service.getServiceType().toLowerCase(Locale.ROOT));
142 @Test(groups = { "Network" })
143 public void testCopyOption()
145 for (ServiceWithParameters _service : disc.getServices())
147 if (isForTesting(_service))
149 Jws2Instance service = (Jws2Instance) _service;
150 List<Option<?>> options = service.getRunnerConfig().getOptions();
151 for (Option<?> o : options)
153 System.out.println("Testing copyOption for option " + o.getName()
154 + " of " + service.getActionText());
155 Option<?> cpy = ParameterUtils.copyOption(o);
156 assertTrue(cpy.equals(o));
157 assertEquals(cpy.getName(), o.getName());
158 assertFalse(cpy == o);
159 // todo more assertions?
167 @Test(groups = { "Network" })
168 public void testCopyParameter()
170 for (ServiceWithParameters _service : disc.getServices())
172 if (isForTesting(_service))
174 Jws2Instance service = (Jws2Instance) _service;
175 List<Parameter> parameters = service.getRunnerConfig()
177 for (Parameter o : parameters)
179 System.out.println("Testing copyParameter for parameter "
180 + o.getName() + " of " + service.getActionText());
181 Parameter cpy = ParameterUtils.copyParameter(o);
182 assertTrue(cpy.equals(o));
183 assertFalse(cpy == o);
184 assertEquals(cpy.getName(), o.getName());
185 // todo more assertions?