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;
8 import org.testng.annotations.Test;
10 public class ArgsParserTest
12 @Test(groups = "Functional")
13 public void testGetValue()
15 ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
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"));
26 assertEquals("Henry", ap.getValue("name"));
27 assertEquals(0, ap.getSize());
28 assertNull(ap.getValue("name"));
31 @Test(groups = "Functional")
32 public void testGetValue_decoded()
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));
43 @Test(groups = "Functional")
44 public void testNextValue()
46 ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
48 assertEquals("name", ap.nextValue());
49 assertEquals("Henry", ap.nextValue());
50 assertEquals("job", ap.nextValue());
51 assertEquals("Tester", ap.nextValue());
54 @Test(groups = "Functional")
55 public void testContains()
57 ArgsParser ap = new ArgsParser(new String[] { "-name", "Henry", "-job",
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"));