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