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.junit.Before;
30 import org.junit.Test;
31 import org.junit.runner.RunWith;
32 import org.powermock.modules.junit4.PowerMockRunner;
33 import java.util.HashMap;
35 import static org.hamcrest.Matchers.is;
36 import static org.junit.Assert.assertThat;
39 @RunWith(PowerMockRunner.class)
40 public class LOGJSONObjectTest {
42 private static LOGJSONObject logJO;
45 public void setUp() throws Exception {
46 Map<String, Object> map = new HashMap<>();
48 logJO = new LOGJSONObject(map);
52 public void Given_Method_Is_Accumulate_And_Value_Is_Valid_Put_Value_Into_New_JSONArray()
54 Map<String, Object> map = new HashMap<>();
56 LOGJSONObject logJObject = new LOGJSONObject(map);
59 logJObject.accumulate(s, null);
60 assertThat(logJObject.get("key").toString(), is("[3,null]"));
64 public void Given_Method_Is_Accumulate_And_Value_Is_Null_Dont_Add_Key_Value_Pair()
67 logJO.accumulate(s, null);
68 assertThat(logJO.has("key"), is(false));
72 public void Given_Method_Is_Append_And_Value_Is_Null_Append_New_Value()
77 assertThat(logJO.getJSONArray("key").get(0), is(2.0));
82 public void Given_Method_Is_DoubleToString_And_Value_Is_NaN_Return_Null()
85 assertThat(logJO.doubleToString(d), is("2"));
90 public void Given_Method_Is_GetBoolean_And_Value_Is_False_Return_False()
92 Map<String, Object> map = new HashMap<>();
93 map.put("key", false);
94 LOGJSONObject logJObject = new LOGJSONObject(map);
97 assertThat(logJObject.getBoolean(s), is(false));
101 public void Given_Method_Is_GetBoolean_And_Value_Is_True_Return_True()
103 Map<String, Object> map = new HashMap<>();
104 map.put("key", true);
105 LOGJSONObject logJObject = new LOGJSONObject(map);
108 assertThat(logJObject.getBoolean(s), is(true));
112 public void Given_Method_Is_GetDouble_And_Value_Is_A_Double_Return_Value()
114 Map<String, Object> map = new HashMap<>();
116 LOGJSONObject logJObject = new LOGJSONObject(map);
119 assertThat(logJObject.getDouble(s), is(2.0));
123 public void Given_Method_Is_GetInt_And_Value_Is_An_Int_Return_Value()
125 Map<String, Object> map = new HashMap<>();
127 LOGJSONObject logJObject = new LOGJSONObject(map);
130 assertThat(logJObject.getInt(s), is(3));
134 public void Given_Method_Is_GetJSONArray_And_Value_Is_A_JSONArray_Return_Value()
136 JSONArray jA = new JSONArray();
137 Map<String, Object> map = new HashMap<>();
139 LOGJSONObject logJObject = new LOGJSONObject(map);
142 assertThat(logJObject.getJSONArray(s), is(jA));
146 public void Given_Method_Is_GetJSONObject_And_Value_Is_A_JSONObject_Return_Value()
148 LOGJSONObject logJObj = new LOGJSONObject();
149 logJObj.put("stub_key", 1);
150 Map<String, Object> map = new HashMap<>();
151 map.put("key", logJObj);
152 LOGJSONObject logJObject = new LOGJSONObject(map);
155 assertThat(logJObject.getJSONObject(s), is(logJObj));
159 public void Given_Method_Is_GetLong_And_Value_Is_A_Long_Return_Value()
162 Map<String, Object> map = new HashMap<>();
164 LOGJSONObject logJObject = new LOGJSONObject(map);
167 assertThat(logJObject.getLong(s), is(5L));
171 public void Given_Method_Is_getNames_And_Value_Is_A_LOGJSONObject_Return_StringArray()
173 LOGJSONObject logJObj = new LOGJSONObject();
174 logJObj.put("name", "stub_name");
175 String[] sArray = new String[logJObj.length()];
177 Map<String, Object> map = new HashMap<>();
178 map.put("key", sArray);
179 LOGJSONObject logJObject = new LOGJSONObject(map);
182 assertThat(logJObject.getNames(logJObj), is(sArray));
186 public void Given_Method_Is_GetString_And_Value_Is_A_String_Return_Value()
188 String val = "value";
189 Map<String, Object> map = new HashMap<>();
191 LOGJSONObject logJObject = new LOGJSONObject(map);
194 assertThat(logJObject.getString(s), is("value"));
198 public void Given_Method_Is_Increment_And_Value_Is_Null_Put_Defualt_Value()
200 Map<String, Object> mapResult = new HashMap<>();
201 mapResult.put("key", 1);
202 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
205 Map<String, Object> map = new HashMap<>();
207 LOGJSONObject logJObject = new LOGJSONObject(map);
210 logJObject.increment(s);
211 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
215 public void Given_Method_Is_Increment_And_Value_Is_An_Int_Put_Value_Plus_One()
217 Map<String, Object> mapResult = new HashMap<>();
218 mapResult.put("key", 3);
219 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
222 Map<String, Object> map = new HashMap<>();
224 LOGJSONObject logJObject = new LOGJSONObject(map);
227 logJObject.increment(s);
228 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
232 public void Given_Method_Is_Increment_And_Value_Is_A_Long_Put_Value_Plus_One()
234 Map<String, Object> mapResult = new HashMap<>();
235 mapResult.put("key", 4L);
236 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
239 Map<String, Object> map = new HashMap<>();
241 LOGJSONObject logJObject = new LOGJSONObject(map);
244 logJObject.increment(s);
245 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
249 public void Given_Method_Is_Increment_And_Value_Is_A_Double_Put_Value_Plus_One()
251 Map<String, Object> mapResult = new HashMap<>();
252 mapResult.put("key", 5.0);
253 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
256 Map<String, Object> map = new HashMap<>();
258 LOGJSONObject logJObject = new LOGJSONObject(map);
261 logJObject.increment(s);
262 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
266 public void Given_Method_Is_Increment_And_Value_Is_A_Float_Put_Value_Plus_One()
268 Map<String, Object> mapResult = new HashMap<>();
269 mapResult.put("key", 5.0);
270 LOGJSONObject logJObjectResult = new LOGJSONObject(mapResult);
273 Map<String, Object> map = new HashMap<>();
275 LOGJSONObject logJObject = new LOGJSONObject(map);
278 logJObject.increment(s);
279 assertThat(logJObject.get("key"), is(logJObjectResult.get("key")));
283 public void Given_Method_Is_Names_And_Object_Contains_Keys_Put_Keys_Into_New_JSONArray()
285 JSONArray ja = new JSONArray();
288 String val = "value";
289 Map<String, Object> map = new HashMap<>();
291 LOGJSONObject logJObject = new LOGJSONObject(map);
294 assertThat(logJObject.names().get(0), is(ja.get(0)));
298 public void Given_Method_Is_NumberToString_And_Number_is_Not_Null_Return_Reformatted_Number_As_String()
302 String val = "value";
303 Map<String, Object> map = new HashMap<>();
305 LOGJSONObject logJObject = new LOGJSONObject(map);
308 assertThat(logJObject.numberToString(num), is("3"));
312 public void Given_Method_Is_OptBoolean_And_Value_is_Boolean_Return_Value()
315 Map<String, Object> map = new HashMap<>();
317 LOGJSONObject logJObject = new LOGJSONObject(map);
320 assertThat(logJObject.optBoolean(s, false), is(true));
324 public void Given_Method_Is_OptBoolean_And_Value_is_Not_Boolean_Return_Default_Value()
326 String val = "not_boolean";
327 Map<String, Object> map = new HashMap<>();
329 LOGJSONObject logJObject = new LOGJSONObject(map);
332 assertThat(logJObject.optBoolean(s, false), is(false));
336 public void Given_Method_Is_OptDouble_And_Value_is_Double_Return_Value()
339 Map<String, Object> map = new HashMap<>();
341 LOGJSONObject logJObject = new LOGJSONObject(map);
344 assertThat(logJObject.optDouble(s, 0.0), is(2.0));
348 public void Given_Method_Is_OptDouble_And_Value_is_Not_Double_Return_Default_Value()
350 String val = "not_double";
351 Map<String, Object> map = new HashMap<>();
353 LOGJSONObject logJObject = new LOGJSONObject(map);
356 assertThat(logJObject.optDouble(s, 0.0), is(0.0));
360 public void Given_Method_Is_OptInt_And_Value_is_Int_Return_Value()
363 Map<String, Object> map = new HashMap<>();
365 LOGJSONObject logJObject = new LOGJSONObject(map);
368 assertThat(logJObject.optInt(s, 0), is(1));
372 public void Given_Method_Is_OptInt_And_Value_Is_Null_Return_Default_Value()
374 Map<String, Object> map = new HashMap<>();
375 map.put("key", null);
376 LOGJSONObject logJObject = new LOGJSONObject(map);
379 assertThat(logJObject.optInt(s, 0), is(0));
383 public void Given_Method_Is_OptLong_And_Value_is_Long_Return_Value()
386 Map<String, Object> map = new HashMap<>();
388 LOGJSONObject logJObject = new LOGJSONObject(map);
391 assertThat(logJObject.optLong(s, 0), is(4L));
395 public void Given_Method_Is_OptLong_And_Value_is_Not_Long_Return_Default_Value()
397 Map<String, Object> map = new HashMap<>();
398 map.put("key", null);
399 LOGJSONObject logJObject = new LOGJSONObject(map);
402 assertThat(logJObject.optLong(s, 0), is(0L));
406 public void Given_Method_Is_OptString_And_Value_is_String_Return_Value()
408 String val = "value";
409 Map<String, Object> map = new HashMap<>();
411 LOGJSONObject logJObject = new LOGJSONObject(map);
414 assertThat(logJObject.optString(s, "default_value"), is("value"));
418 public void Given_Method_Is_putOnce_And_KeyValuePair_Does_Not_Exist_In_logJObject_Put_KeyValuePair_Into_logJObject()
420 String val = "value";
421 Map<String, Object> map = new HashMap<>();
422 LOGJSONObject logJObject = new LOGJSONObject(map);
425 assertThat(logJObject.putOnce(s, val).get("key"), is("value"));
429 public void Given_Method_Is_StringToValue_And_Value_Is_Number_Return_Number()
432 Map<String, Object> map = new HashMap<>();
433 LOGJSONObject logJObject = new LOGJSONObject(map);
435 assertThat(logJObject.stringToValue(val), is(312));
439 public void Given_Method_Is_ToJSONArray_And_KeyValue_Exists_Return_Value_Array()
441 JSONArray names = new JSONArray();
442 Map<String, Object> map = new HashMap<>();
443 map.put("name", "value");
445 LOGJSONObject logJObject = new LOGJSONObject(map);
447 assertThat(logJObject.toJSONArray(names).get(0), is("value"));
451 public void Given_Method_Is_ValueToString_And_Value_Is_JSONArray_Return_Value_To_String()
453 JSONArray val = new JSONArray();
454 Map<String, Object> map = new HashMap<>();
455 map.put("key", "value");
457 LOGJSONObject logJObject = new LOGJSONObject(map);
459 assertThat(logJObject.valueToString(val), is("[\"value\"]"));
463 public void Given_Method_Is_writeValue_And_Value_IS_Not_Null_Return_Writer_With_Value()
465 Writer writer = new CharArrayWriter();
466 String val = "value";
467 Map<String, Object> map = new HashMap<>();
468 map.put("key", "value");
469 LOGJSONObject logJObject = new LOGJSONObject(map);
471 assertThat(logJObject.writeValue(writer, val, 3, 1).toString(), is("\"value\""));
475 public void Given_Method_Is_write_And_Length_Of_logJObject_Is_One_Write_Value_With_Indent()
477 Writer writer = new CharArrayWriter();
478 String val = "value";
479 Map<String, Object> map = new HashMap<>();
480 map.put("key", "value");
481 LOGJSONObject logJObject = new LOGJSONObject(map);
483 assertThat(logJObject.write(writer, 3, 1).toString(), is("{\"key\": \"value\"}"));
487 public void Given_Method_Is_write_And_Length_Of_logJObject_Is_Not_One_Or_Zero_Write_Value_With_New_Indent()
489 Writer writer = new CharArrayWriter();
490 String val = "value";
491 Map<String, Object> map = new HashMap<>();
492 map.put("key", "value");
493 map.put("key1", "value1");
494 LOGJSONObject logJObject = new LOGJSONObject(map);
496 assertThat(logJObject.write(writer, 3, 1).toString(), is("{\n \"key1\": \"value1\",\n \"key\": \"value\"\n }"));