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