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