JAL-1812 bind Groovy to Jalview rather than Desktop, remove reflection
[jalview.git] / test / jalview / bin / ArgsParserTest.java
1 package jalview.bin;
2
3 import static org.testng.AssertJUnit.assertEquals;
4 import static org.testng.AssertJUnit.assertFalse;
5 import static org.testng.AssertJUnit.assertNull;
6 import static org.testng.AssertJUnit.assertTrue;
7
8 import org.testng.annotations.Test;
9
10 public class ArgsParserTest
11 {
12   @Test(groups = "Functional")
13   public void testGetValue()
14   {
15     ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
16         "Tester" });
17     assertEquals(4, ap.getSize());
18     assertNull(ap.getValue("rubbish"));
19     assertEquals("Tester", ap.getValue("job"));
20     // call to getValue removes the argument and its value
21     assertEquals(2, ap.getSize());
22     assertNull(ap.getValue("job"));
23     assertFalse(ap.contains("job"));
24     assertFalse(ap.contains("Tester"));
25
26     assertEquals("Henry", ap.getValue("name"));
27     assertEquals(0, ap.getSize());
28     assertNull(ap.getValue("name"));
29   }
30
31   @Test(groups = "Functional")
32   public void testGetValue_decoded()
33   {
34     ArgsParser ap = new ArgsParser(new String[] { "-name%241", "Henry",
35         "-job", "Test%203%2a" });
36     // parameter value is decoded
37     assertEquals("Test 3*", ap.getValue("job", true));
38     // parameter name is not decoded
39     assertNull(ap.getValue("name$1", true));
40     assertEquals("Henry", ap.getValue("name%241", true));
41   }
42
43   @Test(groups = "Functional")
44   public void testNextValue()
45   {
46     ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
47         "Tester" });
48     assertEquals("name", ap.nextValue());
49     assertEquals("Henry", ap.nextValue());
50     assertEquals("job", ap.nextValue());
51     assertEquals("Tester", ap.nextValue());
52   }
53
54   @Test(groups = "Functional")
55   public void testContains()
56   {
57     ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
58         "Tester" });
59     assertFalse(ap.contains("Susan"));
60     assertFalse(ap.contains("-name"));
61     assertTrue(ap.contains("name"));
62     // testing for contains removes the argument
63     assertFalse(ap.contains("name"));
64   }
65 }