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