1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.assertions;
18
19 import static org.apache.juneau.assertions.AssertionPredicates.ne;
20 import static org.apache.juneau.assertions.Assertions.*;
21 import static org.apache.juneau.common.utils.Utils.*;
22 import static org.junit.jupiter.api.Assertions.*;
23
24 import org.apache.juneau.*;
25 import org.apache.juneau.json.*;
26 import org.junit.jupiter.api.*;
27
28 @Deprecated
29 class ComparableAssertion_Test extends TestBase {
30
31
32
33
34
35 private <T extends Comparable<T>> ComparableAssertion<T> test(T value) {
36 return assertComparable(value).setSilent();
37 }
38
39
40
41
42
43 @Test void a01_msg() {
44 assertThrows(BasicAssertionError.class, ()->test(null).setMsg("A {0}", 1).isExists(), "A 1");
45 assertThrows(RuntimeException.class, ()->test(null).setMsg("A {0}", 1).setThrowable(RuntimeException.class).isExists(), "A 1");
46 }
47
48 @Test void a02_stdout() {
49 test(null).setStdOut();
50 }
51
52
53
54
55
56 @Test void ba01a_asString() {
57 var x = 1;
58 var nil = n(Integer.class);
59 test(x).asString().is("1");
60 test(nil).asString().isNull();
61 }
62
63 @Test void ba01b_asString_wSerializer() {
64 var x = 1;
65 var nil = n(Integer.class);
66 var s = Json5Serializer.DEFAULT;
67 test(x).asString(s).is("1");
68 test(nil).asString(s).is("null");
69 }
70
71 @Test void ba01c_asString_wPredicate() {
72 var x1 = 1;
73 test(x1).asString(x -> "foo").is("foo");
74 }
75
76 @Test void ba02_asJson() {
77 var x = 1;
78 var nil = n(Integer.class);
79 test(x).asJson().is("1");
80 test(nil).asJson().is("null");
81 }
82
83 @Test void ba03_asJsonSorted() {
84 var x = 1;
85 var nil = n(Integer.class);
86 test(x).asJsonSorted().is("1");
87 test(nil).asJsonSorted().is("null");
88 }
89
90 @Test void ba04_apply() {
91 var x1 = 1;
92 var x2 = 2;
93 test(x1).asTransformed(x -> x2).is(x2);
94 }
95
96
97
98
99
100 @Test void ca01_exists() {
101 var x = 1;
102 var nil = n(Integer.class);
103 test(x).isExists().isExists();
104 assertThrows(BasicAssertionError.class, ()->test(nil).isExists(), "Value was null.");
105 }
106
107 @Test void ca02_isNull() {
108 var x = 1;
109 var nil = n(Integer.class);
110 test(nil).isNull();
111 assertThrows(BasicAssertionError.class, ()->test(x).isNull(), "Value was not null.");
112 }
113
114 @Test void ca03_isNotNull() {
115 var x = 1;
116 var nil = n(Integer.class);
117 test(x).isNotNull();
118 assertThrows(BasicAssertionError.class, ()->test(nil).isNotNull(), "Value was null.");
119 }
120
121 @Test void ca04a_is_T() {
122 var x1 = 1;
123 var x1a = 1;
124 var x2 = 2;
125 var nil = n(Integer.class);
126 test(x1).is(x1);
127 test(x1).is(x1a);
128 test(nil).is(nil);
129 assertThrown(()->test(x1).is(x2)).asMessage().asOneLine().is("Unexpected value. Expect='2'. Actual='1'.");
130 assertThrown(()->test(x1).is(nil)).asMessage().asOneLine().is("Unexpected value. Expect='null'. Actual='1'.");
131 assertThrown(()->test(nil).is(x2)).asMessage().asOneLine().is("Unexpected value. Expect='2'. Actual='null'.");
132 }
133
134 @Test void ca04b_is_predicate() {
135 var x1 = 1;
136 test(x1).is(x->x==1);
137 assertThrown(()->test(x1).is(x->x==2)).asMessage().asOneLine().is("Unexpected value: '1'.");
138 assertThrown(()->test(x1).is(ne(x1))).asMessage().asOneLine().is("Value unexpectedly matched. Value='1'.");
139 }
140
141 @Test void ca05_isNot() {
142 var x1 = 1;
143 var x1a = 1;
144 var x2 = 2;
145 var nil = n(Integer.class);
146 test(x1).isNot(x2);
147 test(x1).isNot(nil);
148 test(nil).isNot(x1);
149 assertThrown(()->test(x1).isNot(x1a)).asMessage().asOneLine().is("Unexpected value. Did not expect='1'. Actual='1'.");
150 assertThrown(()->test(nil).isNot(nil)).asMessage().asOneLine().is("Unexpected value. Did not expect='null'. Actual='null'.");
151 }
152
153 @Test void ca06_isAny() {
154 var x1 = 1;
155 var x1a = 1;
156 var x2 = 2;
157 var nil = n(Integer.class);
158 test(x1).isAny(x1a, x2);
159 assertThrown(()->test(x1).isAny(x2)).asMessage().asOneLine().is("Expected value not found. Expect='[2]'. Actual='1'.");
160 assertThrown(()->test(x1).isAny()).asMessage().asOneLine().is("Expected value not found. Expect='[]'. Actual='1'.");
161 assertThrown(()->test(nil).isAny(x2)).asMessage().asOneLine().is("Expected value not found. Expect='[2]'. Actual='null'.");
162 }
163
164 @Test void ca07_isNotAny() {
165 var x1 = 1;
166 var x1a = 1;
167 var x2 = 2;
168 var nil = n(Integer.class);
169 test(x1).isNotAny(x2);
170 test(x1).isNotAny();
171 test(nil).isNotAny(x2);
172 assertThrown(()->test(x1).isNotAny(x1a)).asMessage().asOneLine().is("Unexpected value found. Unexpected='1'. Actual='1'.");
173 assertThrown(()->test(nil).isNotAny(nil)).asMessage().asOneLine().is("Unexpected value found. Unexpected='null'. Actual='null'.");
174 }
175
176 @Test void ca08_isSame() {
177 var x1 = Integer.valueOf(999);
178 var x1a = Integer.valueOf(999);
179 var nil = n(Integer.class);
180 test(x1).isSame(x1);
181 test(nil).isSame(nil);
182 assertThrown(()->test(x1).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='999(Integer@*)'. Actual='999(Integer@*)'.");
183 assertThrown(()->test(nil).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='999(Integer@*)'. Actual='null(null)'.");
184 assertThrown(()->test(x1).isSame(nil)).asMessage().asOneLine().isMatches("Not the same value. Expect='null(null)'. Actual='999(Integer@*)'.");
185 }
186
187 @Test void ca09_isSameJsonAs() {
188 var x1 = 1;
189 var x1a = 1;
190 var x2 = 2;
191 var nil = n(Integer.class);
192 test(x1).isSameJsonAs(x1a);
193 test(nil).isSameJsonAs(nil);
194 assertThrown(()->test(x1a).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='1'.");
195 assertThrown(()->test(nil).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='null'.");
196 assertThrown(()->test(x1).isSameJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='1'.");
197 }
198
199 @Test void ca10_isSameSortedJsonAs() {
200 var x1 = 1;
201 var x1a = 1;
202 var x2 = 2;
203 var nil = n(Integer.class);
204 test(x1).isSameSortedJsonAs(x1a);
205 test(nil).isSameSortedJsonAs(nil);
206 assertThrown(()->test(x1a).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='1'.");
207 assertThrown(()->test(nil).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='null'.");
208 assertThrown(()->test(x1).isSameSortedJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='1'.");
209 }
210
211 @Test void ca11_isSameSerializedAs() {
212 var x1 = 1;
213 var x1a = 1;
214 var x2 = 2;
215 var nil = n(Integer.class);
216 var s = Json5Serializer.DEFAULT;
217 test(x1).isSameSerializedAs(x1a, s);
218 test(nil).isSameSerializedAs(nil, s);
219 assertThrown(()->test(x1a).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='1'.");
220 assertThrown(()->test(nil).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='2'. Actual='null'.");
221 assertThrown(()->test(x1).isSameSerializedAs(nil, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='1'.");
222 }
223
224 @Test void ca12_isType() {
225 var x = 1;
226 var nil = n(Integer.class);
227 test(x).isType(Integer.class);
228 test(x).isType(Object.class);
229 assertThrown(()->test(x).isType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='java.lang.Integer'.");
230 assertThrown(()->test(nil).isType(String.class)).asMessage().asOneLine().is("Value was null.");
231 assertThrown(()->test(x).isType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
232 }
233
234 @Test void ca13_isExactType() {
235 var x = 1;
236 var nil = n(Integer.class);
237 test(x).isExactType(Integer.class);
238 assertThrown(()->test(x).isExactType(Object.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.Object'. Actual='java.lang.Integer'.");
239 assertThrown(()->test(x).isExactType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='java.lang.Integer'.");
240 assertThrown(()->test(nil).isExactType(String.class)).asMessage().asOneLine().is("Value was null.");
241 assertThrown(()->test(x).isExactType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
242 }
243
244 @Test void ca14_isString() {
245 var x = 1;
246 var nil = n(Integer.class);
247 test(x).isString("1");
248 test(nil).isString(null);
249 assertThrown(()->test(x).isString("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='1'.");
250 assertThrown(()->test(x).isString(null)).asMessage().asOneLine().is("String differed at position 0. Expect='null'. Actual='1'.");
251 assertThrown(()->test(nil).isString("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
252 }
253
254 @Test void ca15_isJson() {
255 var x = 1;
256 var nil = n(Integer.class);
257 test(x).isJson("1");
258 test(nil).isJson("null");
259 assertThrown(()->test(x).isJson("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='1'.");
260 assertThrown(()->test(x).isJson(null)).asMessage().asOneLine().is("String differed at position 0. Expect='null'. Actual='1'.");
261 assertThrown(()->test(nil).isJson("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
262 }
263
264 @Test void cb01_isGt() {
265 var x1 = 1;
266 var x2 = 2;
267 var nil = n(Integer.class);
268 test(x2).isGt(x1);
269 assertThrown(()->test(x1).isGt(x1)).asMessage().asOneLine().is("Value was not greater than expected. Expect='1'. Actual='1'.");
270 assertThrown(()->test(x1).isGt(x2)).asMessage().asOneLine().is("Value was not greater than expected. Expect='2'. Actual='1'.");
271 assertThrows(IllegalArgumentException.class, ()->test(x1).isGt(nil), "Argument 'value' cannot be null.");
272 assertThrows(BasicAssertionError.class, ()->test(nil).isGt(x2), "Value was null.");
273 }
274
275 @Test void cb02_isGte() {
276 var x1 = 1;
277 var x1a = Integer.valueOf(1);
278 var x2 = 2;
279 var nil = n(Integer.class);
280 test(x2).isGte(x1);
281 test(x1).isGte(x1);
282 test(x1).isGte(x1a);
283 assertThrown(()->test(x1).isGte(x2)).asMessage().asOneLine().is("Value was not greater than or equals to expected. Expect='2'. Actual='1'.");
284 assertThrows(IllegalArgumentException.class, ()->test(x1).isGte(nil), "Argument 'value' cannot be null.");
285 assertThrows(BasicAssertionError.class, ()->test(nil).isGte(x2), "Value was null.");
286 }
287
288 @Test void cb03_isLt() {
289 var x1 = 1;
290 var x2 = 2;
291 var nil = n(Integer.class);
292 test(x1).isLt(x2);
293 assertThrown(()->test(x1).isLt(x1)).asMessage().asOneLine().is("Value was not less than expected. Expect='1'. Actual='1'.");
294 assertThrown(()->test(x2).isLt(x1)).asMessage().asOneLine().is("Value was not less than expected. Expect='1'. Actual='2'.");
295 assertThrows(IllegalArgumentException.class, ()->test(x2).isLt(nil), "Argument 'value' cannot be null.");
296 assertThrows(BasicAssertionError.class, ()->test(nil).isLt(x1), "Value was null.");
297 }
298
299 @Test void cb04_isLte() {
300 var x1 = 1;
301 var x1a = Integer.valueOf(1);
302 var x2 = 2;
303 var nil = n(Integer.class);
304 test(x1).isLte(x2);
305 test(x1).isLte(x1);
306 test(x1).isLte(x1a);
307 assertThrown(()->test(x2).isLte(x1)).asMessage().asOneLine().is("Value was not less than or equals to expected. Expect='1'. Actual='2'.");
308 assertThrows(IllegalArgumentException.class, ()->test(x2).isLte(nil), "Argument 'value' cannot be null.");
309 assertThrows(BasicAssertionError.class, ()->test(nil).isLte(x1), "Value was null.");
310 }
311
312 @Test void cb05_isBetween() {
313 var x1 = 1;
314 var x2 = 2;
315 var x3 = 3;
316 var x4 = 4;
317 var nil = n(Integer.class);
318 test(x1).isBetween(x1, x3);
319 test(x2).isBetween(x1, x3);
320 test(x3).isBetween(x1, x3);
321 assertThrown(()->test(x4).isBetween(x1, x3)).asMessage().asOneLine().is("Value was not less than or equals to expected. Expect='3'. Actual='4'.");
322 assertThrows(BasicAssertionError.class, ()->test(nil).isBetween(x1, x3), "Value was null.");
323 assertThrows(IllegalArgumentException.class, ()->test(x1).isBetween(nil, x3), "Argument 'lower' cannot be null.");
324 assertThrown(()->test(x1).isBetween(x1, nil)).asMessage().asOneLine().is("Argument 'upper' cannot be null.");
325 }
326 }