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