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.common.utils.*;
26 import org.apache.juneau.json.*;
27 import org.junit.jupiter.api.*;
28
29 @Deprecated
30 class BeanAssertion_Test extends TestBase {
31
32
33
34
35
36 private <T> BeanAssertion<T> test(T value) {
37 return assertBean(value).setSilent();
38 }
39
40 public static A A1 = new A(), A1a = new A(), A2 = new A(2,3);
41
42 public static class A implements Comparable<A> {
43 public int a = 1, b = 2;
44 public A() {}
45 public A(int a, int b) {this.a = a; this.b = b;}
46 @Override public String toString() {return "a="+a+",b="+b;}
47 @Override public boolean equals(Object o) { return Utils.eq(this, (A)o, (x,y)->Utils.eq(x.a,y.a) && Utils.eq(x.b,y.b)); }
48 @Override public int compareTo(A o) { return a-o.a; }
49 }
50
51
52
53
54
55 @Test void a01_msg() {
56 assertThrows(BasicAssertionError.class, ()->test(null).setMsg("Foo {0}", 1).isExists(), "Foo 1");
57 assertThrows(RuntimeException.class, ()->test(null).setMsg("Foo {0}", 1).setThrowable(RuntimeException.class).isExists(), "Foo 1");
58 }
59
60 @Test void a02_stdout() {
61 test(null).setStdOut();
62 }
63
64
65
66
67
68 @Test void ba01a_asString() {
69 var x = A1;
70 var nil = (A)null;
71 test(x).asString().is("a=1,b=2");
72 test(nil).asString().isNull();
73 }
74
75 @Test void ba01b_asString_wSerializer() {
76 var x = A1;
77 var nil = (A)null;
78 var s = Json5Serializer.DEFAULT;
79 test(x).asString(s).is("{a:1,b:2}");
80 test(nil).asString(s).is("null");
81 }
82
83 @Test void ba01c_asString_wPredicate() {
84 var x1 = A1;
85 test(x1).asString(x -> "foo").is("foo");
86 }
87
88 @Test void ba02_asJson() {
89 var x = A1;
90 var nil = (A)null;
91 test(x).asJson().is("{a:1,b:2}");
92 test(nil).asJson().is("null");
93 }
94
95 @Test void ba03_asJsonSorted() {
96 var x1 = a(A2,A1);
97 var nil = (A)null;
98 test(x1).asJsonSorted().is("[{a:1,b:2},{a:2,b:3}]");
99 test(nil).asJsonSorted().is("null");
100 }
101
102 @Test void ba04_apply() {
103 var x1 = A1;
104 var x2 = A2;
105 test(x1).asTransformed(x -> x2).is(x2);
106 }
107
108 @Test void bb01_extract() {
109 var x = A1;
110 var nil = (A)null;
111 test(x).asPropertyMap("b,a").asJson().is("{b:2,a:1}");
112 test(x).asPropertyMap("x").asJson().is("{}");
113 assertThrows(BasicAssertionError.class, ()->test(nil).asPropertyMap("x"), "Value was null.");
114 }
115
116 @Test void bb02_property() {
117 var x = A1;
118 var nil = (A)null;
119 test(x).asProperty("a").asInteger().is(1);
120 test(x).asProperty("x").asInteger().isNull();
121 assertThrows(BasicAssertionError.class, ()->test(nil).asProperty("x"), "Value was null.");
122 }
123
124 @Test void bb03_properties() {
125 var x = A1;
126 var nil = (A)null;
127 test(x).asProperties("a").asJson().is("[1]");
128 test(x).asProperties("x").asJson().is("[null]");
129 assertThrows(BasicAssertionError.class, ()->test(nil).asProperties("x"), "Value was null.");
130 }
131
132
133
134
135
136 @Test void ca01_exists() {
137 var x = A1;
138 var nil = (A)null;
139 test(x).isExists().isExists();
140 assertThrows(BasicAssertionError.class, ()->test(nil).isExists(), "Value was null.");
141 }
142
143 @Test void ca02_isNull() {
144 var x = A1;
145 var nil = (A)null;
146 test(nil).isNull();
147 assertThrows(BasicAssertionError.class, ()->test(x).isNull(), "Value was not null.");
148 }
149
150 @Test void ca03_isNotNull() {
151 var x = A1;
152 var nil = (A)null;
153 test(x).isNotNull();
154 assertThrows(BasicAssertionError.class, ()->test(nil).isNotNull(), "Value was null.");
155 }
156
157 @Test void ca04a_is_T() {
158 var x1 = A1;
159 var x1a = A1a;
160 var x2 = A2;
161 var nil = (A)null;
162 test(x1).is(x1);
163 test(x1).is(x1a);
164 test(nil).is(nil);
165 assertThrown(()->test(x1).is(x2)).asMessage().asOneLine().is("Unexpected value. Expect='a=2,b=3'. Actual='a=1,b=2'.");
166 assertThrown(()->test(x1).is(nil)).asMessage().asOneLine().is("Unexpected value. Expect='null'. Actual='a=1,b=2'.");
167 assertThrown(()->test(nil).is(x2)).asMessage().asOneLine().is("Unexpected value. Expect='a=2,b=3'. Actual='null'.");
168 }
169
170 @Test void ca04b_is_predicate() {
171 var x1 = A1;
172 test(x1).is(x->x.a==1);
173 assertThrown(()->test(x1).is(x->x.a==2)).asMessage().asOneLine().is("Unexpected value: 'a=1,b=2'.");
174 assertThrown(()->test(x1).is(ne(x1))).asMessage().asOneLine().is("Value unexpectedly matched. Value='a=1,b=2'.");
175 }
176
177 @Test void ca05_isNot() {
178 var x1 = A1;
179 var x1a = A1a;
180 var x2 = A2;
181 var nil = (A)null;
182 test(x1).isNot(x2);
183 test(x1).isNot(nil);
184 test(nil).isNot(x1);
185 assertThrown(()->test(x1).isNot(x1a)).asMessage().asOneLine().is("Unexpected value. Did not expect='a=1,b=2'. Actual='a=1,b=2'.");
186 assertThrown(()->test(nil).isNot(nil)).asMessage().asOneLine().is("Unexpected value. Did not expect='null'. Actual='null'.");
187 }
188
189 @Test void ca06_isAny() {
190 var x1 = A1;
191 var x1a = A1a;
192 var x2 = A2;
193 var nil = (A)null;
194 test(x1).isAny(x1a, x2);
195 assertThrown(()->test(x1).isAny(x2)).asMessage().asOneLine().is("Expected value not found. Expect='[a=2,b=3]'. Actual='a=1,b=2'.");
196 assertThrown(()->test(x1).isAny()).asMessage().asOneLine().is("Expected value not found. Expect='[]'. Actual='a=1,b=2'.");
197 assertThrown(()->test(nil).isAny(x2)).asMessage().asOneLine().is("Expected value not found. Expect='[a=2,b=3]'. Actual='null'.");
198 }
199
200 @Test void ca07_isNotAny() {
201 var x1 = A1;
202 var x1a = A1a;
203 var x2 = A2;
204 var nil = (A)null;
205 test(x1).isNotAny(x2);
206 test(x1).isNotAny();
207 test(nil).isNotAny(x2);
208 assertThrown(()->test(x1).isNotAny(x1a)).asMessage().asOneLine().is("Unexpected value found. Unexpected='a=1,b=2'. Actual='a=1,b=2'.");
209 assertThrown(()->test(nil).isNotAny(nil)).asMessage().asOneLine().is("Unexpected value found. Unexpected='null'. Actual='null'.");
210 }
211
212 @Test void ca08_isSame() {
213 var x1 = A1;
214 var x1a = A1a;
215 var nil = (A)null;
216 test(x1).isSame(x1);
217 test(nil).isSame(nil);
218 assertThrown(()->test(x1).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='a=1,b=2(BeanAssertion_Test$A@*)'. Actual='a=1,b=2(BeanAssertion_Test$A@*)'.");
219 assertThrown(()->test(nil).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value. Expect='a=1,b=2(BeanAssertion_Test$A@*)'. Actual='null(null)'.");
220 assertThrown(()->test(x1).isSame(nil)).asMessage().asOneLine().isMatches("Not the same value. Expect='null(null)'. Actual='a=1,b=2(BeanAssertion_Test$A@*)'.");
221 }
222
223 @Test void ca09_isSameJsonAs() {
224 var x1 = A1;
225 var x1a = A1a;
226 var x2 = A2;
227 var nil = (A)null;
228 test(x1).isSameJsonAs(x1a);
229 test(nil).isSameJsonAs(nil);
230 assertThrown(()->test(x1a).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='{a:1,b:2}'.");
231 assertThrown(()->test(nil).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='null'.");
232 assertThrown(()->test(x1).isSameJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='{a:1,b:2}'.");
233 }
234
235 @Test void ca10_isSameSortedJsonAs() {
236 var x1 = A1;
237 var x1a = A1a;
238 var x2 = A2;
239 var nil = (A)null;
240 test(x1).isSameSortedJsonAs(x1a);
241 test(nil).isSameSortedJsonAs(nil);
242 assertThrown(()->test(x1a).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='{a:1,b:2}'.");
243 assertThrown(()->test(nil).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='null'.");
244 assertThrown(()->test(x1).isSameSortedJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='{a:1,b:2}'.");
245 }
246
247 @Test void ca11_isSameSerializedAs() {
248 var x1 = A1;
249 var x1a = A1a;
250 var x2 = A2;
251 var nil = (A)null;
252 var s = Json5Serializer.DEFAULT;
253 test(x1).isSameSerializedAs(x1a, s);
254 test(nil).isSameSerializedAs(nil, s);
255 assertThrown(()->test(x1a).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='{a:1,b:2}'.");
256 assertThrown(()->test(nil).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='{a:2,b:3}'. Actual='null'.");
257 assertThrown(()->test(x1).isSameSerializedAs(nil, s)).asMessage().asOneLine().is("Unexpected comparison. Expect='null'. Actual='{a:1,b:2}'.");
258 }
259
260 @Test void ca12_isType() {
261 var x = A1;
262 var nil = (A)null;
263 test(x).isType(A.class);
264 test(x).isType(Object.class);
265 assertThrown(()->test(x).isType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='org.apache.juneau.assertions.BeanAssertion_Test$A'.");
266 assertThrown(()->test(nil).isType(String.class)).asMessage().asOneLine().is("Value was null.");
267 assertThrown(()->test(x).isType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
268 }
269
270 @Test void ca13_isExactType() {
271 var x = A1;
272 var nil = (A)null;
273 test(x).isExactType(A.class);
274 assertThrown(()->test(x).isExactType(String.class)).asMessage().asOneLine().is("Unexpected type. Expect='java.lang.String'. Actual='org.apache.juneau.assertions.BeanAssertion_Test$A'.");
275 assertThrown(()->test(nil).isExactType(String.class)).asMessage().asOneLine().is("Value was null.");
276 assertThrown(()->test(x).isExactType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
277 }
278
279 @Test void ca14_isString() {
280 var x = A1;
281 var nil = (A)null;
282 test(x).isString("a=1,b=2");
283 test(nil).isString(null);
284 assertThrown(()->test(x).isString("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='a=1,b=2'.");
285 assertThrown(()->test(x).isString(null)).asMessage().asOneLine().is("String differed at position 0. Expect='null'. Actual='a=1,b=2'.");
286 assertThrown(()->test(nil).isString("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
287 }
288
289 @Test void ca15_isJson() {
290 var x = A1;
291 var nil = (A)null;
292 test(x).isJson("{a:1,b:2}");
293 test(nil).isJson("null");
294 assertThrown(()->test(x).isJson("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='{a:1,b:2}'.");
295 assertThrown(()->test(x).isJson(null)).asMessage().asOneLine().is("String differed at position 0. Expect='null'. Actual='{a:1,b:2}'.");
296 assertThrown(()->test(nil).isJson("bad")).asMessage().asOneLine().is("String differed at position 0. Expect='bad'. Actual='null'.");
297 }
298 }