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 java.time.*;
25 import java.time.temporal.*;
26 import java.util.*;
27
28 import org.apache.juneau.*;
29 import org.apache.juneau.json.*;
30 import org.junit.jupiter.api.*;
31
32 @Deprecated
33 class DateAssertion_Test extends TestBase {
34
35
36
37
38
39 private DateAssertion test(Date value) {
40 return assertDate(value).setSilent();
41 }
42
43 private static Date date(String s) {
44 return new Date(ZonedDateTime.parse(s).toEpochSecond()*1000);
45 }
46
47 private static final Date
48 MIN = date("1970-06-01T12:34:56Z"),
49 MAX = date("2100-06-01T12:34:56Z"),
50 MID1 = date("2000-06-01T12:34:56Z"),
51 MID1a = date("2000-06-01T12:34:56Z"),
52 MID2 = date("2010-06-01T12:34:56Z")
53 ;
54
55
56
57
58
59 @Test void a01_msg() {
60 assertThrows(BasicAssertionError.class, ()->test(null).setMsg("A {0}", 1).isExists(), "A 1");
61 assertThrows(RuntimeException.class, ()->test(null).setMsg("A {0}", 1).setThrowable(RuntimeException.class).isExists(), "A 1");
62 }
63
64 @Test void a02_stdout() {
65 test(null).setStdOut();
66 }
67
68
69
70
71
72 @Test void ba01a_asString() {
73 var x = MID1;
74 var nil = n(Date.class);
75 test(x).asString().isMatches("*2000");
76 test(nil).asString().isNull();
77 }
78
79 @Test void ba01b_asString_wSerializer() {
80 var x = MID1;
81 var nil = n(Date.class);
82 var s = Json5Serializer.DEFAULT;
83 test(x).asString(s).isMatches("'2000-*'");
84 test(nil).asString(s).is("null");
85 }
86
87 @Test void ba01c_asString_wPredicate() {
88 var x1 = MID1;
89 test(x1).asString(x -> "foo").is("foo");
90 }
91
92 @Test void ba02_asJson() {
93 var x = MID1;
94 var nil = n(Date.class);
95 test(x).asJson().isMatches("'2000-*'");
96 test(nil).asJson().is("null");
97 }
98
99 @Test void ba03_asJsonSorted() {
100 var x1 = MID1;
101 var nil = n(Date.class);
102 test(x1).asJsonSorted().isMatches("'2000-*'");
103 test(nil).asJsonSorted().is("null");
104 }
105
106 @Test void ba04_apply() {
107 var x1 = MID1;
108 var x2 = MID2;
109 test(x1).asTransformed(x -> x2).is(MID2);
110 }
111
112 @Test void bc04a_asEpochMillis() {
113 var x = MID1;
114 var nil = n(Date.class);
115 test(x).asEpochMillis().is(959862896000L);
116 test(nil).asEpochMillis().isNull();
117 }
118
119 @Test void bc04b_asEpochSeconds() {
120 var x = MID1;
121 var nil = n(Date.class);
122 test(x).asEpochSeconds().is(959862896L);
123 test(nil).asEpochSeconds().isNull();
124 }
125
126
127
128
129
130 @Test void ca01_exists() {
131 var x = MID1;
132 var nil = n(Date.class);
133 test(x).isExists().isExists();
134 assertThrows(BasicAssertionError.class, ()->test(nil).isExists(), "Value was null.");
135 }
136
137 @Test void ca02_isNull() {
138 var x = MID1;
139 var nil = n(Date.class);
140 test(nil).isNull();
141 assertThrows(BasicAssertionError.class, ()->test(x).isNull(), "Value was not null.");
142 }
143
144 @Test void ca03_isNotNull() {
145 var x = MID1;
146 var nil = n(Date.class);
147 test(x).isNotNull();
148 assertThrows(BasicAssertionError.class, ()->test(nil).isNotNull(), "Value was null.");
149 }
150
151 @Test void ca04a_is_T() {
152 var x1 = MID1;
153 var x1a = MID1a;
154 var x2 = MID2;
155 var nil = n(Date.class);
156 test(x1).is(x1);
157 test(x1).is(x1a);
158 test(nil).is(nil);
159 assertThrown(()->test(x1).is(x2)).asMessage().asOneLine().isMatches("Unexpected value. Expect='*2010'. Actual='*2000'.");
160 assertThrown(()->test(x1).is(nil)).asMessage().asOneLine().isMatches("Unexpected value. Expect='null'. Actual='*2000'.");
161 assertThrown(()->test(nil).is(x2)).asMessage().asOneLine().isMatches("Unexpected value. Expect='*2010'. Actual='null'.");
162 }
163
164 @Test void ca04b_is_predicate() {
165 var x1 = MID1;
166 test(x1).is(x->x!=null);
167 assertThrown(()->test(x1).is(x->x==null)).asMessage().asOneLine().isMatches("Unexpected value: '*2000'.");
168 assertThrown(()->test(x1).is(ne(x1))).asMessage().asOneLine().isMatches("Value unexpectedly matched. Value='*2000'.");
169 }
170
171 @Test void ca05_isNot() {
172 var x1 = MID1;
173 var x1a = MID1a;
174 var x2 = MID2;
175 var nil = n(Date.class);
176 test(x1).isNot(x2);
177 test(x1).isNot(nil);
178 test(nil).isNot(x1);
179 assertThrown(()->test(x1).isNot(x1a)).asMessage().asOneLine().isMatches("Unexpected value. Did not expect='*2000'. Actual='*2000'.");
180 assertThrown(()->test(nil).isNot(nil)).asMessage().asOneLine().is("Unexpected value. Did not expect='null'. Actual='null'.");
181 }
182
183 @Test void ca06_isAny() {
184 var x1 = MID1;
185 var x1a = MID1a;
186 var x2 = MID2;
187 var nil = n(Date.class);
188 test(x1).isAny(x1a, x2);
189 assertThrown(()->test(x1).isAny(x2)).asMessage().asOneLine().isMatches("Expected value not found. Expect='[*2010]'. Actual='*2000'.");
190 assertThrown(()->test(x1).isAny()).asMessage().asOneLine().isMatches("Expected value not found. Expect='[]'. Actual='*2000'.");
191 assertThrown(()->test(nil).isAny(x2)).asMessage().asOneLine().isMatches("Expected value not found. Expect='[*2010]'. Actual='null'.");
192 }
193
194 @Test void ca07_isNotAny() {
195 var x1 = MID1;
196 var x1a = MID1a;
197 var x2 = MID2;
198 var nil = n(Date.class);
199 test(x1).isNotAny(x2);
200 test(x1).isNotAny();
201 test(nil).isNotAny(x2);
202 assertThrown(()->test(x1).isNotAny(x1a)).asMessage().asOneLine().isMatches("Unexpected value found. Unexpected='*2000'. Actual='*2000'.");
203 assertThrown(()->test(nil).isNotAny(nil)).asMessage().asOneLine().is("Unexpected value found. Unexpected='null'. Actual='null'.");
204 }
205
206 @Test void ca08_isSame() {
207 var x1 = MID1;
208 var x1a = MID1a;
209 var nil = n(Date.class);
210 test(x1).isSame(x1);
211 test(nil).isSame(nil);
212 assertThrown(()->test(x1).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='*2000(Date@*)'. Actual='*2000(Date@*)'.");
213 assertThrown(()->test(nil).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='*2000(Date@*)'. Actual='null(null)'.");
214 assertThrown(()->test(x1).isSame(nil)).asMessage().asOneLine().isMatches("Not the same value. Expect='null(null)'. Actual='*2000(Date@*)'.");
215 }
216
217 @Test void ca09_isSameJsonAs() {
218 var x1 = MID1;
219 var x1a = MID1a;
220 var x2 = MID2;
221 var nil = n(Date.class);
222 test(x1).isSameJsonAs(x1a);
223 test(nil).isSameJsonAs(nil);
224 assertThrown(()->test(x1a).isSameJsonAs(x2)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual=''2000*''.");
225 assertThrown(()->test(nil).isSameJsonAs(x2)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual='null'.");
226 assertThrown(()->test(x1).isSameJsonAs(nil)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect='null'. Actual=''2000*''.");
227 }
228
229 @Test void ca10_isSameSortedJsonAs() {
230 var x1 = MID1;
231 var x1a = MID1a;
232 var x2 = MID2;
233 var nil = n(Date.class);
234 test(x1).isSameSortedJsonAs(x1a);
235 test(nil).isSameSortedJsonAs(nil);
236 assertThrown(()->test(x1a).isSameSortedJsonAs(x2)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual=''2000*''.");
237 assertThrown(()->test(nil).isSameSortedJsonAs(x2)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual='null'.");
238 assertThrown(()->test(x1).isSameSortedJsonAs(nil)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect='null'. Actual=''2000*''.");
239 }
240
241 @Test void ca11_isSameSerializedAs() {
242 var x1 = MID1;
243 var x1a = MID1a;
244 var x2 = MID2;
245 var nil = n(Date.class);
246 var s = Json5Serializer.DEFAULT;
247 test(x1).isSameSerializedAs(x1a, s);
248 test(nil).isSameSerializedAs(nil, s);
249 assertThrown(()->test(x1a).isSameSerializedAs(x2, s)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual=''2000*''.");
250 assertThrown(()->test(nil).isSameSerializedAs(x2, s)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect=''2010*''. Actual='null'.");
251 assertThrown(()->test(x1).isSameSerializedAs(nil, s)).asMessage().asOneLine().isMatches("Unexpected comparison. Expect='null'. Actual=''2000*''.");
252 }
253
254 @Test void ca12_isType() {
255 var x = MID1;
256 var nil = n(Date.class);
257 test(x).isType(Date.class);
258 test(x).isType(Object.class);
259 assertThrown(()->test(x).isType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='java.util.Date'.");
260 assertThrown(()->test(nil).isType(String.class)).asMessage().asOneLine().is("Value was null.");
261 assertThrown(()->test(x).isType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
262 }
263
264 @Test void ca13_isExactType() {
265 var x = MID1;
266 var nil = n(Date.class);
267 test(x).isExactType(Date.class);
268 assertThrown(()->test(x).isExactType(Object.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.Object'. Actual='java.util.Date'.");
269 assertThrown(()->test(x).isExactType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='java.util.Date'.");
270 assertThrown(()->test(nil).isExactType(String.class)).asMessage().asOneLine().is("Value was null.");
271 assertThrown(()->test(x).isExactType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
272 }
273
274 @Test void ca14_isString() {
275 var x = MID1;
276 var nil = n(Date.class);
277 test(x).isString(x.toString());
278 test(nil).isString(null);
279 assertThrown(()->test(x).isString("bad")).asMessage().asOneLine().isMatches("String differed at position 0. Expect='bad'. Actual='*2000'.");
280 assertThrown(()->test(x).isString(null)).asMessage().asOneLine().isMatches("String differed at position 0. Expect='null'. Actual='*2000'.");
281 assertThrown(()->test(nil).isString("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
282 }
283
284 @Test void ca15_isJson() {
285 var x = MID1;
286 var nil = n(Date.class);
287 test(nil).isJson("null");
288 assertThrown(()->test(x).isJson("bad")).asMessage().asOneLine().isMatches("String differed at position 0. Expect='bad'. Actual=''2000*''.");
289 assertThrown(()->test(x).isJson(null)).asMessage().asOneLine().isMatches("String differed at position 0. Expect='null'. Actual=''2000*''.");
290 assertThrown(()->test(nil).isJson("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
291 }
292
293 @Test void cb01_isGt() {
294 var x1 = MID1;
295 var x2 = MID2;
296 var nil = n(Date.class);
297 test(x2).isGt(x1);
298 assertThrown(()->test(x1).isGt(x1)).asMessage().asOneLine().isMatches("Value was not greater than expected. Expect='*2000'. Actual='*2000'.");
299 assertThrown(()->test(x1).isGt(x2)).asMessage().asOneLine().isMatches("Value was not greater than expected. Expect='*2010'. Actual='*2000'.");
300 assertThrows(IllegalArgumentException.class, ()->test(x1).isGt(nil), "Argument 'value' cannot be null.");
301 assertThrows(BasicAssertionError.class, ()->test(nil).isGt(x2), "Value was null.");
302 }
303
304 @Test void cb02_isGte() {
305 var x1 = MID1;
306 var x2 = MID2;
307 var nil = n(Date.class);
308 test(x2).isGte(x1);
309 test(x1).isGte(x1);
310 assertThrown(()->test(x1).isGte(x2)).asMessage().asOneLine().isMatches("Value was not greater than or equals to expected. Expect='*2010'. Actual='*2000'.");
311 assertThrows(IllegalArgumentException.class, ()->test(x1).isGte(nil), "Argument 'value' cannot be null.");
312 assertThrows(BasicAssertionError.class, ()->test(nil).isGte(x2), "Value was null.");
313 }
314
315 @Test void cb03_isLt() {
316 var x1 = MID1;
317 var x2 = MID2;
318 var nil = n(Date.class);
319 test(x1).isLt(x2);
320 assertThrown(()->test(x1).isLt(x1)).asMessage().asOneLine().isMatches("Value was not less than expected. Expect='*2000'. Actual='*2000'.");
321 assertThrown(()->test(x2).isLt(x1)).asMessage().asOneLine().isMatches("Value was not less than expected. Expect='*2000'. Actual='*2010'.");
322 assertThrows(IllegalArgumentException.class, ()->test(x2).isLt(nil), "Argument 'value' cannot be null.");
323 assertThrows(BasicAssertionError.class, ()->test(nil).isLt(x1), "Value was null.");
324 }
325
326 @Test void cb04_isLte() {
327 var x1 = MID1;
328 var x2 = MID2;
329 var nil = n(Date.class);
330 test(x1).isLte(x2);
331 test(x1).isLte(x1);
332 assertThrown(()->test(x2).isLte(x1)).asMessage().asOneLine().isMatches("Value was not less than or equals to expected. Expect='*2000'. Actual='*2010'.");
333 assertThrows(IllegalArgumentException.class, ()->test(x2).isLte(nil), "Argument 'value' cannot be null.");
334 assertThrows(BasicAssertionError.class, ()->test(nil).isLte(x1), "Value was null.");
335 }
336
337 @Test void cb05_isBetween() {
338 var x1 = MIN;
339 var x2 = MID1;
340 var x3 = MID2;
341 var x4 = MAX;
342 var nil = n(Date.class);
343 test(x1).isBetween(x1, x3);
344 test(x2).isBetween(x1, x3);
345 test(x3).isBetween(x1, x3);
346 assertThrown(()->test(x4).isBetween(x1, x3)).asMessage().asOneLine().isMatches("Value was not less than or equals to expected. Expect='*2010'. Actual='*2100'.");
347 assertThrows(BasicAssertionError.class, ()->test(nil).isBetween(x1, x3), "Value was null.");
348 assertThrows(IllegalArgumentException.class, ()->test(x1).isBetween(nil, x3), "Argument 'lower' cannot be null.");
349 assertThrown(()->test(x1).isBetween(x1, nil)).asMessage().asOneLine().is("Argument 'upper' cannot be null.");
350 }
351
352 @Test void cc01_is_wChrono() {
353 var x1 = MID1;
354 var x1a = MID1a;
355 var x2 = MIN;
356 var nil = n(Date.class);
357 test(x1).is(x1, ChronoUnit.DAYS);
358 test(x1).is(x1a, ChronoUnit.DAYS);
359 assertThrown(()->test(nil).is(nil, ChronoUnit.DAYS)).asMessage().isContains("Value was null.");
360 assertThrown(()->test(x1).is(x2, ChronoUnit.DAYS)).asMessage().isContains("Unexpected value.");
361 assertThrown(()->test(x1).is(nil, ChronoUnit.DAYS)).asMessage().isContains("Unexpected value.");
362 }
363
364 @Test void cc02_isAfter() {
365 var x1 = MIN;
366 var x2 = MID1;
367 var x3 = MAX;
368 var nil = n(Date.class);
369 test(x3).isAfter(x2);
370 assertThrows(IllegalArgumentException.class, ()->test(x1).isAfter(nil), "Argument 'value' cannot be null.");
371 assertThrown(()->test(x1).isAfter(x2)).asMessage().isContains("Value was not after expected.");
372 assertThrows(BasicAssertionError.class, ()->test(nil).isAfter(x2), "Value was null.");
373 }
374
375 @Test void cc03_isAfterNow() {
376 var x1 = MIN;
377 var x2 = MAX;
378 var nil = n(Date.class);
379 test(x2).isAfterNow();
380 assertThrown(()->test(x1).isAfterNow()).asMessage().isContains("Value was not after expected.");
381 assertThrown(()->test(nil).isAfterNow()).asMessage().isContains("Value was null.");
382 }
383
384 @Test void cc04_isBefore() {
385 var x1 = MIN;
386 var x2 = MID1;
387 var nil = n(Date.class);
388 test(x1).isBefore(x2);
389 assertThrows(IllegalArgumentException.class, ()->test(x1).isBefore(nil), "Argument 'value' cannot be null.");
390 assertThrown(()->test(x2).isBefore(x1)).asMessage().isContains("Value was not before expected.");
391 assertThrows(BasicAssertionError.class, ()->test(nil).isBefore(x1), "Value was null.");
392 }
393
394 @Test void cc05_isBeforeNow() {
395 var x1 = MIN;
396 var x2 = MAX;
397 var nil = n(Date.class);
398 test(x1).isBeforeNow();
399 assertThrown(()->test(x2).isBeforeNow()).asMessage().isContains("Value was not before expected.");
400 assertThrown(()->test(nil).isBeforeNow()).asMessage().isContains("Value was null.");
401 }
402 }