View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.juneau.assertions;
18  
19  import static org.apache.juneau.assertions.Assertions.*;
20  import static org.apache.juneau.common.utils.Utils.*;
21  import static org.junit.jupiter.api.Assertions.*;
22  
23  import org.apache.juneau.*;
24  import org.apache.juneau.json.*;
25  import org.junit.jupiter.api.*;
26  
27  @Deprecated
28  class IntegerAssertion_Test extends TestBase {
29  
30  	//------------------------------------------------------------------------------------------------------------------
31  	// Helpers
32  	//------------------------------------------------------------------------------------------------------------------
33  
34  	private IntegerAssertion test(Integer value) {
35  		return assertInteger(value).setSilent();
36  	}
37  
38  	//-----------------------------------------------------------------------------------------------------------------
39  	// Basic tests
40  	//-----------------------------------------------------------------------------------------------------------------
41  
42  	@Test void a01_msg() {
43  		assertThrows(BasicAssertionError.class, ()->test(null).setMsg("Foo {0}", 1).isExists(), "Foo 1");
44  		assertThrows(RuntimeException.class, ()->test(null).setMsg("Foo {0}", 1).setThrowable(RuntimeException.class).isExists(), "Foo 1");
45  	}
46  
47  	@Test void a02_stdout() {
48  		test(null).setStdOut();
49  	}
50  
51  	//-----------------------------------------------------------------------------------------------------------------
52  	// Transform tests
53  	//-----------------------------------------------------------------------------------------------------------------
54  
55  	@Test void ba01a_asString() {
56  		var x = 1;
57  		var nil = n(Integer.class);
58  		test(x).asString().is("1");
59  		test(nil).asString().isNull();
60  	}
61  
62  	@Test void ba01b_asString_wSerializer() {
63  		var x = 1;
64  		var nil = n(Integer.class);
65  		var s = Json5Serializer.DEFAULT;
66  		test(x).asString(s).is("1");
67  		test(nil).asString(s).is("null");
68  	}
69  
70  	@Test void ba01c_asString_wPredicate() {
71  		var x1 = 1;
72  		test(x1).asString(x -> "foo").is("foo");
73  	}
74  
75  	@Test void ba02_asJson() {
76  		var x = 1;
77  		var nil = n(Integer.class);
78  		test(x).asJson().is("1");
79  		test(nil).asJson().is("null");
80  	}
81  
82  	@Test void ba03_asJsonSorted() {
83  		var x = 1;
84  		var nil = n(Integer.class);
85  		test(x).asJsonSorted().is("1");
86  		test(nil).asJsonSorted().is("null");
87  	}
88  
89  	@Test void ba04_apply() {
90  		var x1 = 1;
91  		var x2 = 2;
92  		test(x1).asTransformed(x -> x2).is(x2);
93  	}
94  
95  	//-----------------------------------------------------------------------------------------------------------------
96  	// Test tests
97  	//-----------------------------------------------------------------------------------------------------------------
98  
99  	@Test void ca01_exists() {
100 		var x = 1;
101 		test(x).isExists().isExists();
102 		assertThrows(BasicAssertionError.class, ()->test(null).isExists(), "Value was null.");
103 	}
104 
105 	@Test void ca02_isNull() {
106 		var x = 1;
107 		var nil = n(Integer.class);
108 		test(nil).isNull();
109 		assertThrows(BasicAssertionError.class, ()->test(x).isNull(), "Value was not null.");
110 	}
111 
112 	@Test void ca03_isNotNull() {
113 		var x = 1;
114 		var nil = n(Integer.class);
115 		test(x).isNotNull();
116 		assertThrows(BasicAssertionError.class, ()->test(nil).isNotNull(), "Value was null.");
117 	}
118 
119 	@Test void ca04a_is_T() {
120 		var x1 = 1;
121 		var x1a = 1;
122 		var x2 = 2;
123 		var nil = n(Integer.class);
124 		test(x1).is(x1);
125 		test(x1).is(x1a);
126 		test(nil).is(nil);
127 		assertThrown(()->test(x1).is(x2)).asMessage().asOneLine().is("Unexpected value.  Expect='2'.  Actual='1'.");
128 		assertThrown(()->test(x1).is(nil)).asMessage().asOneLine().is("Unexpected value.  Expect='null'.  Actual='1'.");
129 		assertThrown(()->test(nil).is(x2)).asMessage().asOneLine().is("Unexpected value.  Expect='2'.  Actual='null'.");
130 	}
131 
132 	@Test void ca04b_is_predicate() {
133 		var x1 = 1;
134 		var x1a = 1;
135 		var x2 = 2;
136 		var nil = n(Integer.class);
137 		test(x1).isNot(x2);
138 		test(x1).isNot(nil);
139 		test(nil).isNot(x1);
140 		assertThrown(()->test(x1).isNot(x1a)).asMessage().asOneLine().is("Unexpected value.  Did not expect='1'.  Actual='1'.");
141 		assertThrown(()->test(nil).isNot(nil)).asMessage().asOneLine().is("Unexpected value.  Did not expect='null'.  Actual='null'.");
142 	}
143 
144 	@Test void ca05_isNot() {
145 		var x1 = 1;
146 		var x1a = 1;
147 		var x2 = 2;
148 		var nil = n(Integer.class);
149 		test(x1).isNot(x2);
150 		test(x1).isNot(nil);
151 		test(nil).isNot(x1);
152 		assertThrown(()->test(x1).isNot(x1a)).asMessage().asOneLine().is("Unexpected value.  Did not expect='1'.  Actual='1'.");
153 		assertThrown(()->test(nil).isNot(nil)).asMessage().asOneLine().is("Unexpected value.  Did not expect='null'.  Actual='null'.");
154 	}
155 
156 	@Test void ca06_isAny() {
157 		var x1 = 1;
158 		var x1a = 1;
159 		var x2 = 2;
160 		var nil = n(Integer.class);
161 		test(x1).isAny(x1a, x2);
162 		assertThrown(()->test(x1).isAny(x2)).asMessage().asOneLine().is("Expected value not found.  Expect='[2]'.  Actual='1'.");
163 		assertThrown(()->test(x1).isAny()).asMessage().asOneLine().is("Expected value not found.  Expect='[]'.  Actual='1'.");
164 		assertThrown(()->test(nil).isAny(x2)).asMessage().asOneLine().is("Expected value not found.  Expect='[2]'.  Actual='null'.");
165 	}
166 
167 	@Test void ca07_isNotAny() {
168 		var x1 = 1;
169 		var x1a = 1;
170 		var x2 = 2;
171 		var nil = n(Integer.class);
172 		test(x1).isNotAny(x2);
173 		test(x1).isNotAny();
174 		test(nil).isNotAny(x2);
175 		assertThrown(()->test(x1).isNotAny(x1a)).asMessage().asOneLine().is("Unexpected value found.  Unexpected='1'.  Actual='1'.");
176 		assertThrown(()->test(nil).isNotAny(nil)).asMessage().asOneLine().is("Unexpected value found.  Unexpected='null'.  Actual='null'.");
177 	}
178 
179 	@Test void ca08_isSame() {
180 		var x1 = Integer.valueOf(999);
181 		var x1a = Integer.valueOf(999);
182 		var nil = n(Integer.class);
183 		test(x1).isSame(x1);
184 		test(nil).isSame(nil);
185 		assertThrown(()->test(x1).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value.  Expect='999(Integer@*)'.  Actual='999(Integer@*)'.");
186 		assertThrown(()->test(nil).isSame(x1a)).asMessage().asOneLine().isMatches("Not the same value.  Expect='999(Integer@*)'.  Actual='null(null)'.");
187 		assertThrown(()->test(x1).isSame(nil)).asMessage().asOneLine().isMatches("Not the same value.  Expect='null(null)'.  Actual='999(Integer@*)'.");
188 	}
189 
190 	@Test void ca09_isSameJsonAs() {
191 		var x1 = 1;
192 		var x1a = 1;
193 		var x2 = 2;
194 		var nil = n(Integer.class);
195 		test(x1).isSameJsonAs(x1a);
196 		test(nil).isSameJsonAs(nil);
197 		assertThrown(()->test(x1).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='1'.");
198 		assertThrown(()->test(nil).isSameJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='null'.");
199 		assertThrown(()->test(x1).isSameJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison.  Expect='null'.  Actual='1'.");
200 	}
201 
202 	@Test void ca10_isSameSortedJsonAs() {
203 		var x1 = 1;
204 		var x1a = 1;
205 		var x2 = 2;
206 		var nil = n(Integer.class);
207 		test(x1).isSameSortedJsonAs(x1a);
208 		test(nil).isSameSortedJsonAs(nil);
209 		assertThrown(()->test(x1).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='1'.");
210 		assertThrown(()->test(nil).isSameSortedJsonAs(x2)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='null'.");
211 		assertThrown(()->test(x1).isSameSortedJsonAs(nil)).asMessage().asOneLine().is("Unexpected comparison.  Expect='null'.  Actual='1'.");
212 	}
213 
214 	@Test void ca11_isSameSerializedAs() {
215 		var x1 = 1;
216 		var x1a = 1;
217 		var x2 = 2;
218 		var nil = n(Integer.class);
219 		var s = Json5Serializer.DEFAULT;
220 		test(x1).isSameSerializedAs(x1a, s);
221 		test(nil).isSameSerializedAs(nil, s);
222 		assertThrown(()->test(x1).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='1'.");
223 		assertThrown(()->test(nil).isSameSerializedAs(x2, s)).asMessage().asOneLine().is("Unexpected comparison.  Expect='2'.  Actual='null'.");
224 		assertThrown(()->test(x1).isSameSerializedAs(nil, s)).asMessage().asOneLine().is("Unexpected comparison.  Expect='null'.  Actual='1'.");
225 	}
226 
227 	@Test void ca12_isType() {
228 		var x = 1;
229 		var nil = n(Integer.class);
230 		test(x).isType(Integer.class);
231 		test(x).isType(Object.class);
232 		assertThrown(()->test(x).isType(String.class)).asMessage().asOneLine().is("Unexpected type.  Expect='java.lang.String'.  Actual='java.lang.Integer'.");
233 		assertThrown(()->test(nil).isType(String.class)).asMessage().asOneLine().is("Value was null.");
234 		assertThrown(()->test(x).isType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
235 	}
236 
237 	@Test void ca13_isExactType() {
238 		var x = 1;
239 		var nil = n(Integer.class);
240 		test(x).isExactType(Integer.class);
241 		assertThrown(()->test(x).isExactType(Object.class)).asMessage().asOneLine().is("Unexpected type.  Expect='java.lang.Object'.  Actual='java.lang.Integer'.");
242 		assertThrown(()->test(x).isExactType(String.class)).asMessage().asOneLine().is("Unexpected type.  Expect='java.lang.String'.  Actual='java.lang.Integer'.");
243 		assertThrown(()->test(nil).isExactType(String.class)).asMessage().asOneLine().is("Value was null.");
244 		assertThrown(()->test(x).isExactType(null)).asMessage().asOneLine().is("Argument 'parent' cannot be null.");
245 	}
246 
247 	@Test void ca14_isString() {
248 		var x = 1;
249 		var nil = n(Integer.class);
250 		test(x).isString("1");
251 		test(nil).isString(null);
252 		assertThrown(()->test(x).isString("bad")).asMessage().asOneLine().is("String differed at position 0.  Expect='bad'.  Actual='1'.");
253 		assertThrown(()->test(x).isString(null)).asMessage().asOneLine().is("String differed at position 0.  Expect='null'.  Actual='1'.");
254 		assertThrown(()->test(nil).isString("bad")).asMessage().asOneLine().is("String differed at position 0.  Expect='bad'.  Actual='null'.");
255 	}
256 
257 	@Test void ca15_isJson() {
258 		var x = 1;
259 		var nil = n(Integer.class);
260 		test(x).isJson("1");
261 		test(nil).isJson("null");
262 		assertThrown(()->test(x).isJson("bad")).asMessage().asOneLine().is("String differed at position 0.  Expect='bad'.  Actual='1'.");
263 		assertThrown(()->test(x).isJson(null)).asMessage().asOneLine().is("String differed at position 0.  Expect='null'.  Actual='1'.");
264 		assertThrown(()->test(nil).isJson("bad")).asMessage().asOneLine().is("String differed at position 0.  Expect='bad'.  Actual='null'.");
265 	}
266 
267 	@Test void cb01_isGt() {
268 		var x1 = 1;
269 		var x2 = 2;
270 		var nil = n(Integer.class);
271 		test(x2).isGt(x1);
272 		assertThrown(()->test(x1).isGt(x1)).asMessage().asOneLine().is("Value was not greater than expected.  Expect='1'.  Actual='1'.");
273 		assertThrown(()->test(x1).isGt(x2)).asMessage().asOneLine().is("Value was not greater than expected.  Expect='2'.  Actual='1'.");
274 		assertThrows(IllegalArgumentException.class, ()->test(x1).isGt(nil), "Argument 'value' cannot be null.");
275 		assertThrows(BasicAssertionError.class, ()->test(nil).isGt(x2), "Value was null.");
276 	}
277 
278 	@Test void cb02_isGte() {
279 		var x1 = 1;
280 		var x2 = 2;
281 		var nil = n(Integer.class);
282 		test(x2).isGte(x1);
283 		test(x1).isGte(x1);
284 		assertThrown(()->test(x1).isGte(x2)).asMessage().asOneLine().is("Value was not greater than or equals to expected.  Expect='2'.  Actual='1'.");
285 		assertThrows(IllegalArgumentException.class, ()->test(x1).isGte(nil), "Argument 'value' cannot be null.");
286 		assertThrows(BasicAssertionError.class, ()->test(nil).isGte(x2), "Value was null.");
287 	}
288 
289 	@Test void cb03_isLt() {
290 		var x1 = 1;
291 		var x2 = 2;
292 		var nil = n(Integer.class);
293 		test(x1).isLt(x2);
294 		assertThrown(()->test(x1).isLt(x1)).asMessage().asOneLine().is("Value was not less than expected.  Expect='1'.  Actual='1'.");
295 		assertThrown(()->test(x2).isLt(x1)).asMessage().asOneLine().is("Value was not less than expected.  Expect='1'.  Actual='2'.");
296 		assertThrows(IllegalArgumentException.class, ()->test(x2).isLt(nil), "Argument 'value' cannot be null.");
297 		assertThrows(BasicAssertionError.class, ()->test(nil).isLt(x1), "Value was null.");
298 	}
299 
300 	@Test void cb04_isLte() {
301 		var x1 = 1;
302 		var x2 = 2;
303 		var nil = n(Integer.class);
304 		test(x1).isLte(x2);
305 		test(x1).isLte(x1);
306 		assertThrown(()->test(x2).isLte(x1)).asMessage().asOneLine().is("Value was not less than or equals to expected.  Expect='1'.  Actual='2'.");
307 		assertThrows(IllegalArgumentException.class, ()->test(x2).isLte(nil), "Argument 'value' cannot be null.");
308 		assertThrows(BasicAssertionError.class, ()->test(nil).isLte(x1), "Value was null.");
309 	}
310 
311 	@Test void cb05_isBetween() {
312 		var x1 = 1;
313 		var x2 = 2;
314 		var x3 = 3;
315 		var x4 = 4;
316 		var nil = n(Integer.class);
317 		test(x1).isBetween(x1, x3);
318 		test(x2).isBetween(x1, x3);
319 		test(x3).isBetween(x1, x3);
320 		assertThrown(()->test(x4).isBetween(x1, x3)).asMessage().asOneLine().is("Value was not less than or equals to expected.  Expect='3'.  Actual='4'.");
321 		assertThrows(BasicAssertionError.class, ()->test(nil).isBetween(x1, x3), "Value was null.");
322 		assertThrows(IllegalArgumentException.class, ()->test(x1).isBetween(nil, x3), "Argument 'lower' cannot be null.");
323 		assertThrown(()->test(x1).isBetween(x1, nil)).asMessage().asOneLine().is("Argument 'upper' cannot be null.");
324 	}
325 }