1 /* Copyright (c) 2009 Peter Troshin
\r
3 * JAva Bioinformatics Analysis Web Services (JABAWS) @version: 1.0
\r
5 * This library is free software; you can redistribute it and/or modify it under the terms of the
\r
6 * Apache License version 2 as published by the Apache Software Foundation
\r
8 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
\r
9 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Apache
\r
10 * License for more details.
\r
12 * A copy of the license is in apache_license.txt. It is also available here:
\r
13 * @see: http://www.apache.org/licenses/LICENSE-2.0.txt
\r
15 * Any republication or derived work distributed in source code form
\r
16 * must include this copyright and license notice.
\r
19 package compbio.engine.client;
\r
21 import static org.testng.Assert.assertEquals;
\r
22 import static org.testng.Assert.assertFalse;
\r
23 import static org.testng.Assert.assertNotSame;
\r
24 import static org.testng.Assert.assertTrue;
\r
25 import static org.testng.Assert.fail;
\r
27 import java.io.FileNotFoundException;
\r
28 import java.io.IOException;
\r
29 import java.util.Arrays;
\r
30 import java.util.List;
\r
32 import org.testng.annotations.Test;
\r
34 import compbio.metadata.RunnerConfig;
\r
35 import compbio.runner.msa.ClustalW;
\r
36 import compbio.runner.msa.Mafft;
\r
37 import compbio.runner.msa.Muscle;
\r
39 public class CommandBuilderTester {
\r
42 public void testCommandBuilding() {
\r
43 CommandBuilder<ClustalW> builder = new CommandBuilder<ClustalW>("=");
\r
44 builder.setParam("-MATRIX", "blosum65");
\r
45 assertTrue(builder.getCommands().size() == 1);
\r
46 String p = builder.getParamValue("-MATRIX");
\r
47 builder.setParam("-clustalw");
\r
48 builder.setParam("-in", "\\gile\\path\\abs.txt");
\r
49 System.out.println(builder.getCommands());
\r
50 assertTrue(builder.getCommands().size() == 3);
\r
51 builder.setParam("-stat=/test.log");
\r
52 assertTrue(builder.getCommands().size() == 4);
\r
53 System.out.println("CP:" + builder.getCommands());
\r
54 assertTrue(builder.setParam("-stat=/newtest.log"));
\r
56 List<String> clist = Arrays.asList("-prop", "-tree=treefile.txt",
\r
58 builder.addParams(clist);
\r
59 assertTrue(builder.size() == 6);
\r
60 builder.setParams(clist);
\r
61 assertTrue(builder.size() == 3);
\r
62 System.out.println("CP:" + builder.getCommands());
\r
63 String option = "-log=error.txt";
\r
64 builder.setFirst(option);
\r
65 assertEquals(builder.getCommands().get(0), option);
\r
66 builder.setParam("-newParam2");
\r
67 assertEquals(builder.getCommands().get(0), option);
\r
68 builder.setLast(option);
\r
69 assertNotSame(builder.getCommands().get(0), option);
\r
70 assertEquals(builder.getCommands().get(builder.size() - 1), option);
\r
71 builder.setParam("-newParam3");
\r
72 assertEquals(builder.getCommands().get(builder.size() - 1), option);
\r
73 builder.setParam("-prm5", "prm5Value");
\r
74 assertTrue(builder.hasParam("-prm5"));
\r
78 public void testSpaceDelimiterExecutable() {
\r
79 CommandBuilder<Muscle> cbuilder = new CommandBuilder<Muscle>(" ");
\r
80 cbuilder.addParams(Arrays.asList("-clwstrict", "-quiet", "-verbose",
\r
81 "-log", "EXEC_STAT_FILE"));
\r
85 public void testOptionsToCommand() {
\r
87 RunnerConfig<Mafft> rconf = ConfExecutable
\r
88 .getRunnerOptions(Mafft.class);
\r
89 CommandBuilder<Mafft> cbuilder = CommandBuilder.newCommandBuilder(
\r
90 rconf.getArguments(), Mafft.KEY_VALUE_SEPARATOR);
\r
92 for (String val : cbuilder.getCommands()) {
\r
93 assertFalse(val.contains(cbuilder.nameValueSeparator));
\r
94 comm += val + cbuilder.nameValueSeparator;
\r
96 assertEquals(cbuilder.getCommandString(), comm);
\r
97 } catch (FileNotFoundException e) {
\r
98 e.printStackTrace();
\r
99 fail(e.getLocalizedMessage());
\r
100 } catch (IOException e) {
\r
101 e.printStackTrace();
\r
102 fail(e.getLocalizedMessage());
\r