1 /*******************************************************************************
2 * ============LICENSE_START==================================================
4 * * ===========================================================================
5 * * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * * ===========================================================================
7 * * Licensed under the Apache License, Version 2.0 (the "License");
8 * * you may not use this file except in compliance with the License.
9 * * You may obtain a copy of the License at
11 * * http://www.apache.org/licenses/LICENSE-2.0
13 * * Unless required by applicable law or agreed to in writing, software
14 * * distributed under the License is distributed on an "AS IS" BASIS,
15 * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * * See the License for the specific language governing permissions and
17 * * limitations under the License.
18 * * ============LICENSE_END====================================================
20 * * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 ******************************************************************************/
24 package org.onap.dmaap.datarouter.provisioning.utils;
26 import java.io.CharArrayWriter;
27 import java.io.Writer;
28 import org.json.JSONArray;
29 import org.json.JSONTokener;
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.junit.runner.RunWith;
33 import org.powermock.modules.junit4.PowerMockRunner;
34 import java.util.HashMap;
36 import static org.hamcrest.Matchers.is;
37 import static org.junit.Assert.assertThat;
40 @RunWith(PowerMockRunner.class)
41 public class LOGJSONObjectTest {
43 private static LOGJSONObject logJO;
46 public void setUp() throws Exception {
47 Map<String, Object> map = new HashMap<>();
49 logJO = new LOGJSONObject(map);
53 public void Construct_JSONObject_From_A_Subset_Of_Values_From_Another_JSONObject()
55 Map<String, Object> map = new HashMap<>();
56 map.put("key1", "value1");
57 map.put("key2", "value2");
58 map.put("key3", "value3");
59 LOGJSONObject ljo= new LOGJSONObject(map);
60 String[] sA = {"key1", "key3"};
61 LOGJSONObject logJObject = new LOGJSONObject(ljo, sA);
62 assertThat(logJObject.toString(), is("{\"key1\":\"value1\",\"key3\":\"value3\"}"));
66 public void Construct_JSONObject_From_A_JSONTokener()
68 JSONTokener x = new JSONTokener("{\"key1\":\"value1\",\"key3\":\"value3\"}");
69 LOGJSONObject logJObject = new LOGJSONObject(x);
70 assertThat(logJObject.toString(), is("{\"key1\":\"value1\",\"key3\":\"value3\"}"));
74 public void Construct_JSONObject_From_A_Bean_Object_And_Populate_From_Its_Getters_And_Setters()
76 Map<String, Object> map = new HashMap<>();
77 map.put("key1", "value1");
78 map.put("key2", "value2");
79 map.put("key3", "value3");
81 LOGJSONObject logJObject = new LOGJSONObject(bean);
82 assertThat(logJObject.toString(), is("{\"empty\":false}"));
86 public void Given_Method_Is_Accumulate_And_Value_Is_Valid_Put_Value_Into_New_JSONArray()
88 Map<String, Object> map = new HashMap<>();
90 LOGJSONObject logJObject = new LOGJSONObject(map);
93 logJObject.accumulate(s, null);
94 assertThat(logJObject.get("key").toString(), is("[3,null]"));
98 public void Given_Method_Is_Accumulate_And_Value_Is_Null_Dont_Add_Key_Value_Pair()
101 logJO.accumulate(s, null);
102 assertThat(logJO.has("key"), is(false));
106 public void Given_Method_Is_Append_And_Value_Is_Null_Append_New_Value()
111 assertThat(logJO.getJSONArray("key").get(0), is(2.0));
116 public void Given_Method_Is_DoubleToString_And_Value_Is_NaN_Return_Null()
119 assertThat(logJO.doubleToString(d), is("2"));
124 public void Given_Method_Is_GetBoolean_And_Value_Is_False_Return_False()
126 Map<String, Object> map = new HashMap<>();
127 map.put("key", false);
128 LOGJSONObject logJObject = new LOGJSONObject(map);
131 assertThat(logJObject.getBoolean(s), is(false));
135 public void Given_Method_Is_GetBoolean_And_Value_Is_True_Return_True()
137 Map<String, Object> map = new HashMap<>();
138 map.put("key", true);
139 LOGJSONObject logJObject = new LOGJSONObject(map);
142 assertThat(logJObject.getBoolean(s), is(true));
146 public void Given_Method_Is_GetDouble_And_Value_Is_A_Double_Return_Value()
148 Map<String, Object> map = new HashMap<>();
150 LOGJSONObject logJObject = new LOGJSONObject(map);
153 assertThat(logJObject.getDouble(s), is(2.0));
157 public void Given_Method_Is_GetInt_And_Value_Is_An_Int_Return_Value()
159 Map<String, Object> map = new HashMap<>();
161 LOGJSONObject logJObject = new LOGJSONObject(map);
164 assertThat(logJObject.getInt(s), is(3));
168 public void Given_Method_Is_GetJSONArray_And_Value_Is_A_JSONArray_Return_Value()
170 JSONArray jA = new JSONArray();
171 Map<String, Object> map = new HashMap<>();
173 LOGJSONObject logJObject = new LOGJSONObject(map);
176 assertThat(logJObject.getJSONArray(s), is(jA));
180 public void Given_Method_Is_GetJSONObject_And_Value_Is_A_JSONObject_Return_Value()
182 LOGJSONObject logJObj = new LOGJSONObject();
183 logJObj.put("stub_key", 1);
184 Map<String, Object> map = new HashMap<>();
185 map.put("key", logJObj);
186 LOGJSONObject logJObject = new LOGJSONObject(map);
189 assertThat(logJObject.getJSONObject(s), is(logJObj));
193 public void Given_Method_Is_GetLong_And_Value_Is_A_Long_Return_Value()
196 Map<String, Object> map = new HashMap<>();
198 LOGJSONObject logJObject = new LOGJSONObject(map);
201 assertThat(logJObject.getLong(s), is(5L));
205 public void Given_Method_Is_getNames_And_Value_Is_A_LOGJSONObject_Return_StringArray()
207 LOGJSONObject logJObj = new LOGJSONObject();
208 logJObj.put("name1", "elyk");
209 String[] sArray = new String[logJObj.length()];
211 LOGJSONObject logJObject = new LOGJSONObject();
213 assertThat(logJObject.getNames(logJObj), is(sArray));
217 public void Given_Method_Is_GetString_And_Value_Is_A_String_Return_Value()
219 String val = "value";
220 Map<String, Object> map = new HashMap<>();
222 LOGJSONObject logJObject = new LOGJSONObject(map);
225 assertThat(logJObject.getString(s), is("value"));
229 public void Given_Method_Is_Increment_And_Value_Is_Null_Put_Defualt_Value()
231 Map<String, Object> mapResult = new HashMap<>();
232 mapResult.put("key", 1);
233 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
236 Map<String, Object> map = new HashMap<>();
238 LOGJSONObject logJObject = new LOGJSONObject(map);
241 logJObject.increment(s);
242 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
246 public void Given_Method_Is_Increment_And_Value_Is_An_Int_Put_Value_Plus_One()
248 Map<String, Object> mapResult = new HashMap<>();
249 mapResult.put("key", 3);
250 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
253 Map<String, Object> map = new HashMap<>();
255 LOGJSONObject logJObject = new LOGJSONObject(map);
258 logJObject.increment(s);
259 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
263 public void Given_Method_Is_Increment_And_Value_Is_A_Long_Put_Value_Plus_One()
265 Map<String, Object> mapResult = new HashMap<>();
266 mapResult.put("key", 4L);
267 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
270 Map<String, Object> map = new HashMap<>();
272 LOGJSONObject logJObject = new LOGJSONObject(map);
275 logJObject.increment(s);
276 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
280 public void Given_Method_Is_Increment_And_Value_Is_A_Double_Put_Value_Plus_One()
282 Map<String, Object> mapResult = new HashMap<>();
283 mapResult.put("key", 5.0);
284 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
287 Map<String, Object> map = new HashMap<>();
289 LOGJSONObject logJObject = new LOGJSONObject(map);
292 logJObject.increment(s);
293 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
297 public void Given_Method_Is_Increment_And_Value_Is_A_Float_Put_Value_Plus_One()
299 Map<String, Object> mapResult = new HashMap<>();
300 mapResult.put("key", 5.0);
301 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
304 Map<String, Object> map = new HashMap<>();
306 LOGJSONObject logJObject = new LOGJSONObject(map);
309 logJObject.increment(s);
310 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
314 public void Given_Method_Is_Names_And_Object_Contains_Keys_Put_Keys_Into_New_JSONArray()
316 JSONArray ja = new JSONArray();
319 String val = "value";
320 Map<String, Object> map = new HashMap<>();
322 LOGJSONObject logJObject = new LOGJSONObject(map);
325 assertThat(logJObject.names().get(0), is(ja.get(0)));
329 public void Given_Method_Is_NumberToString_And_Number_is_Not_Null_Return_Reformatted_Number_As_String()
333 String val = "value";
334 Map<String, Object> map = new HashMap<>();
336 LOGJSONObject logJObject = new LOGJSONObject(map);
339 assertThat(logJObject.numberToString(num), is("3"));
343 public void Given_Method_Is_OptBoolean_And_Value_is_Boolean_Return_Value()
346 Map<String, Object> map = new HashMap<>();
348 LOGJSONObject logJObject = new LOGJSONObject(map);
351 assertThat(logJObject.optBoolean(s, false), is(true));
355 public void Given_Method_Is_OptBoolean_And_Value_is_Not_Boolean_Return_Default_Value()
357 String val = "not_boolean";
358 Map<String, Object> map = new HashMap<>();
360 LOGJSONObject logJObject = new LOGJSONObject(map);
363 assertThat(logJObject.optBoolean(s, false), is(false));
367 public void Given_Method_Is_OptDouble_And_Value_is_Double_Return_Value()
370 Map<String, Object> map = new HashMap<>();
372 LOGJSONObject logJObject = new LOGJSONObject(map);
375 assertThat(logJObject.optDouble(s, 0.0), is(2.0));
379 public void Given_Method_Is_OptDouble_And_Value_is_Not_Double_Return_Default_Value()
381 String val = "not_double";
382 Map<String, Object> map = new HashMap<>();
384 LOGJSONObject logJObject = new LOGJSONObject(map);
387 assertThat(logJObject.optDouble(s, 0.0), is(0.0));
391 public void Given_Method_Is_OptInt_And_Value_is_Int_Return_Value()
394 Map<String, Object> map = new HashMap<>();
396 LOGJSONObject logJObject = new LOGJSONObject(map);
399 assertThat(logJObject.optInt(s, 0), is(1));
403 public void Given_Method_Is_OptInt_And_Value_Is_Null_Return_Default_Value()
405 Map<String, Object> map = new HashMap<>();
406 map.put("key", null);
407 LOGJSONObject logJObject = new LOGJSONObject(map);
410 assertThat(logJObject.optInt(s, 0), is(0));
414 public void Given_Method_Is_OptLong_And_Value_is_Long_Return_Value()
417 Map<String, Object> map = new HashMap<>();
419 LOGJSONObject logJObject = new LOGJSONObject(map);
422 assertThat(logJObject.optLong(s, 0), is(4L));
426 public void Given_Method_Is_OptLong_And_Value_is_Not_Long_Return_Default_Value()
428 Map<String, Object> map = new HashMap<>();
429 map.put("key", null);
430 LOGJSONObject logJObject = new LOGJSONObject(map);
433 assertThat(logJObject.optLong(s, 0), is(0L));
437 public void Given_Method_Is_OptString_And_Value_is_String_Return_Value()
439 String val = "value";
440 Map<String, Object> map = new HashMap<>();
442 LOGJSONObject logJObject = new LOGJSONObject(map);
445 assertThat(logJObject.optString(s, "default_value"), is("value"));
449 public void Given_Method_Is_putOnce_And_KeyValuePair_Does_Not_Exist_In_logJObject_Put_KeyValuePair_Into_logJObject()
451 String val = "value";
452 Map<String, Object> map = new HashMap<>();
453 LOGJSONObject logJObject = new LOGJSONObject(map);
456 assertThat(logJObject.putOnce(s, val).get("key"), is("value"));
460 public void Given_Method_Is_StringToValue_And_Value_Is_Number_Return_Number()
463 Map<String, Object> map = new HashMap<>();
464 LOGJSONObject logJObject = new LOGJSONObject(map);
466 assertThat(logJObject.stringToValue(val), is(312));
470 public void Given_Method_Is_ToJSONArray_And_KeyValue_Exists_Return_Value_Array()
472 JSONArray names = new JSONArray();
473 Map<String, Object> map = new HashMap<>();
474 map.put("name", "value");
476 LOGJSONObject logJObject = new LOGJSONObject(map);
478 assertThat(logJObject.toJSONArray(names).get(0), is("value"));
482 public void Given_Method_Is_ValueToString_And_Value_Is_JSONArray_Return_Value_To_String()
484 JSONArray val = new JSONArray();
485 Map<String, Object> map = new HashMap<>();
486 map.put("key", "value");
488 LOGJSONObject logJObject = new LOGJSONObject(map);
490 assertThat(logJObject.valueToString(val), is("[\"value\"]"));
494 public void Given_Method_Is_writeValue_And_Value_IS_Not_Null_Return_Writer_With_Value()
496 Writer writer = new CharArrayWriter();
497 String val = "value";
498 Map<String, Object> map = new HashMap<>();
499 map.put("key", "value");
500 LOGJSONObject logJObject = new LOGJSONObject(map);
502 assertThat(logJObject.writeValue(writer, val, 3, 1).toString(), is("\"value\""));
506 public void Given_Method_Is_write_And_Length_Of_logJObject_Is_One_Write_Value_With_Indent()
508 Writer writer = new CharArrayWriter();
509 String val = "value";
510 Map<String, Object> map = new HashMap<>();
511 map.put("key", "value");
512 LOGJSONObject logJObject = new LOGJSONObject(map);
514 assertThat(logJObject.write(writer, 3, 1).toString(), is("{\"key\": \"value\"}"));
518 public void Given_Method_Is_write_And_Length_Of_logJObject_Is_Not_One_Or_Zero_Write_Value_With_New_Indent()
520 Writer writer = new CharArrayWriter();
521 String val = "value";
522 Map<String, Object> map = new HashMap<>();
523 map.put("key", "value");
524 map.put("key1", "value1");
525 LOGJSONObject logJObject = new LOGJSONObject(map);
527 assertThat(logJObject.write(writer, 3, 1).toString(), is("{\n \"key1\": \"value1\",\n \"key\": \"value\"\n }"));