1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.commons.collections;
18
19 import static org.apache.juneau.commons.utils.CollectionUtils.*;
20 import static org.apache.juneau.junit.bct.BctAssertions.*;
21 import static org.junit.jupiter.api.Assertions.*;
22
23 import java.util.*;
24
25 import org.apache.juneau.*;
26 import org.apache.juneau.collections.*;
27 import org.junit.jupiter.api.*;
28
29 class Args_Test extends TestBase {
30
31
32
33
34 @Test void basic() {
35 var a = new Args(a());
36
37
38 assertNull(a.getArg(0));
39 assertNull(a.getArg(1));
40 assertNull(a.getArg(-1));
41 assertNull(a.getArg("foo"));
42 assertEmpty(a.getArgs("foo"));
43 assertFalse(a.containsKey("foo"));
44
45 a = new Args(a("foo"));
46 assertEquals("foo", a.getArg(0));
47 assertNull(a.getArg(1));
48 assertNull(a.getArg(-1));
49 assertNull(a.getArg("foo"));
50 assertEmpty(a.getArgs("foo"));
51 assertFalse(a.containsKey("foo"));
52
53 a = new Args(a("foo", "bar bar"));
54 assertEquals("foo", a.getArg(0));
55 assertEquals("bar bar", a.getArg(1));
56 assertNull(a.getArg(-1));
57 assertNull(a.getArg("foo"));
58 assertEmpty(a.getArgs("foo"));
59 assertFalse(a.containsKey("foo"));
60
61 a = new Args(a("foo", "bar bar", "-foo"));
62 assertEquals("foo", a.getArg(0));
63 assertEquals("bar bar", a.getArg(1));
64 assertNull(a.getArg(-1));
65 assertNull(a.getArg("foo"));
66 assertEmpty(a.getArgs("foo"));
67 assertTrue(a.containsKey("foo"));
68
69 a = new Args(a("foo", "bar bar", "-foo", "bar bar"));
70 assertEquals("foo", a.getArg(0));
71 assertEquals("bar bar", a.getArg(1));
72 assertNull(a.getArg(-1));
73 assertEquals("bar bar", a.getArg("foo"));
74 assertSize(1, a.getArgs("foo"));
75 assertEquals("bar bar", a.getArgs("foo").get(0));
76 assertTrue(a.containsKey("foo"));
77 }
78
79
80
81
82 @Test void fluentSetters() {
83 var a = new Args(a("main1"));
84
85
86 var innerMap = new HashMap<String,Object>();
87 innerMap.put("test", "value");
88 assertSame(a, a.inner(innerMap));
89
90
91 BeanSession session = BeanContext.DEFAULT.getSession();
92 assertSame(a, a.session(session));
93
94
95 assertSame(a, a.append("key1", "value1"));
96 assertEquals("value1", a.get("key1"));
97
98
99 var appendMap = new HashMap<String,Object>();
100 appendMap.put("key2", "value2");
101 assertSame(a, a.append(appendMap));
102 assertEquals("value2", a.get("key2"));
103
104
105 assertSame(a, a.appendIf(true, "key3", "value3"));
106 assertEquals("value3", a.get("key3"));
107 assertSame(a, a.appendIf(false, "key4", "value4"));
108 assertNull(a.get("key4"));
109
110
111 assertSame(a, a.filtered(x -> x != null));
112
113
114 assertSame(a, a.keepAll("key1", "key2"));
115
116
117 assertSame(a, a.setBeanSession(session));
118
119
120 assertSame(a, a.modifiable());
121
122
123 assertSame(a, a.unmodifiable());
124 }
125
126 @Test void fluentChaining() {
127
128 var a = new Args(a("main1"))
129 .append("key1", "value1")
130 .append("key2", "value2")
131 .appendIf(true, "key3", "value3");
132
133 assertEquals("value1", a.get("key1"));
134 assertEquals("value2", a.get("key2"));
135 assertEquals("value3", a.get("key3"));
136 }
137 }