1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.cli2.util;
18
19 import java.util.Collections;
20 import java.util.List;
21
22 import junit.framework.TestCase;
23
24 import org.apache.commons.cli2.CLITestCase;
25 import org.apache.commons.cli2.Option;
26 import org.apache.commons.cli2.option.CommandTest;
27 import org.apache.commons.cli2.option.DefaultOptionTest;
28 import org.apache.commons.cli2.option.GroupTest;
29 import org.apache.commons.cli2.option.ParentTest;
30 import org.apache.commons.cli2.option.SwitchTest;
31
32
33
34
35 public class ComparatorsTest extends TestCase {
36 public void testGroupFirst() {
37 final Option o1 = GroupTest.buildAntGroup();
38 final Option o2 = ParentTest.buildLibParent();
39 final List list = CLITestCase.list(o1, o2);
40
41 Collections.sort(list, Comparators.groupFirst());
42
43 CLITestCase.assertListContentsEqual(
44 CLITestCase.list(o1, o2),
45 list);
46 }
47
48 public void testGroupLast() {
49 final Option o1 = GroupTest.buildAntGroup();
50 final Option o2 = ParentTest.buildLibParent();
51 final List list = CLITestCase.list(o1, o2);
52
53 Collections.sort(list, Comparators.groupLast());
54
55 CLITestCase.assertListContentsEqual(
56 CLITestCase.list(o2, o1),
57 list);
58 }
59
60 public void testSwitchFirst() {
61 final Option o1 = SwitchTest.buildDisplaySwitch();
62 final Option o2 = ParentTest.buildLibParent();
63 final List list = CLITestCase.list(o1, o2);
64
65 Collections.sort(list, Comparators.switchFirst());
66
67 CLITestCase.assertListContentsEqual(
68 CLITestCase.list(o1, o2),
69 list);
70 }
71
72 public void testSwitchLast() {
73 final Option o1 = SwitchTest.buildDisplaySwitch();
74 final Option o2 = ParentTest.buildLibParent();
75
76 final List list = CLITestCase.list(o1, o2);
77
78 Collections.sort(list, Comparators.switchLast());
79
80 CLITestCase.assertListContentsEqual(
81 CLITestCase.list(o2, o1),
82 list);
83 }
84
85 public void testCommandFirst() {
86 final Option o1 = CommandTest.buildCommitCommand();
87 final Option o2 = ParentTest.buildLibParent();
88 final List list = CLITestCase.list(o1, o2);
89
90 Collections.sort(list, Comparators.commandFirst());
91
92 CLITestCase.assertListContentsEqual(
93 CLITestCase.list(o1, o2),
94 list);
95 }
96
97 public void testCommandLast() {
98 final Option o1 = CommandTest.buildCommitCommand();
99 final Option o2 = ParentTest.buildLibParent();
100 final List list = CLITestCase.list(o1, o2);
101
102 Collections.sort(list, Comparators.commandLast());
103
104 CLITestCase.assertListContentsEqual(
105 CLITestCase.list(o2, o1),
106 list);
107 }
108
109 public void testDefaultOptionFirst() {
110 final Option o1 = DefaultOptionTest.buildHelpOption();
111 final Option o2 = CommandTest.buildCommitCommand();
112 final List list = CLITestCase.list(o1, o2);
113
114 Collections.sort(list, Comparators.defaultOptionFirst());
115
116 CLITestCase.assertListContentsEqual(
117 CLITestCase.list(o1, o2),
118 list);
119 }
120
121 public void testDefaultOptionLast() {
122 final Option o1 = DefaultOptionTest.buildHelpOption();
123 final Option o2 = CommandTest.buildCommitCommand();
124 final List list = CLITestCase.list(o1, o2);
125
126 Collections.sort(list, Comparators.defaultOptionLast());
127
128 CLITestCase.assertListContentsEqual(
129 CLITestCase.list(o2, o1),
130 list);
131 }
132
133 public void testNamedFirst() {
134 final Option o1 = DefaultOptionTest.buildHelpOption();
135 final Option o2 = ParentTest.buildLibParent();
136 final List list = CLITestCase.list(o1, o2);
137
138 Collections.sort(list, Comparators.namedFirst("--help"));
139
140 CLITestCase.assertListContentsEqual(
141 CLITestCase.list(o1, o2),
142 list);
143 }
144
145 public void testNamedLast() {
146 final Option o1 = DefaultOptionTest.buildHelpOption();
147 final Option o2 = ParentTest.buildLibParent();
148 final List list = CLITestCase.list(o1, o2);
149
150 Collections.sort(list, Comparators.namedLast("--help"));
151
152 CLITestCase.assertListContentsEqual(
153 CLITestCase.list(o2, o1),
154 list);
155 }
156
157 public void testPreferredNameFirst() {
158 final Option o1 = DefaultOptionTest.buildHelpOption();
159 final Option o2 = ParentTest.buildLibParent();
160 final List list = CLITestCase.list(o1, o2);
161
162 Collections.sort(list, Comparators.preferredNameFirst());
163
164 CLITestCase.assertListContentsEqual(
165 CLITestCase.list(o1, o2),
166 list);
167 }
168
169 public void testPreferredNameLast() {
170 final Option o1 = DefaultOptionTest.buildHelpOption();
171 final Option o2 = ParentTest.buildLibParent();
172 final List list = CLITestCase.list(o1, o2);
173
174 Collections.sort(list, Comparators.preferredNameLast());
175
176 CLITestCase.assertListContentsEqual(
177 CLITestCase.list(o2, o1),
178 list);
179 }
180
181 public void testRequiredFirst() {
182 final Option o1 = DefaultOptionTest.buildHelpOption();
183 final Option o2 = DefaultOptionTest.buildXOption();
184 final List list = CLITestCase.list(o1, o2);
185
186 Collections.sort(list, Comparators.requiredFirst());
187
188 CLITestCase.assertListContentsEqual(
189 CLITestCase.list(o2, o1),
190 list);
191 }
192
193 public void testRequiredLast() {
194 final Option o1 = DefaultOptionTest.buildHelpOption();
195 final Option o2 = DefaultOptionTest.buildXOption();
196 final List list = CLITestCase.list(o1, o2);
197
198 Collections.sort(list, Comparators.requiredLast());
199
200 CLITestCase.assertListContentsEqual(
201 CLITestCase.list(o1, o2),
202 list);
203 }
204
205 public void testChained() {
206 final Option o1 = CommandTest.buildCommitCommand();
207 final Option o2 = SwitchTest.buildDisplaySwitch();
208 final Option o3 = DefaultOptionTest.buildHelpOption();
209 final List list = CLITestCase.list(o1, o2, o3);
210
211 Collections.sort(
212 list,
213 Comparators.chain(
214 Comparators.namedFirst("--help"),
215 Comparators.commandFirst()));
216
217 CLITestCase.assertListContentsEqual(
218 CLITestCase.list(o3, o1, o2),
219 list);
220 }
221 }