2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2024 Ericsson
4 * Modifications Copyright (C) 2024 OpenInfra Foundation Europe
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
21 package org.oran.smo.yangtools.parser.data.parser.test;
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertFalse;
25 import static org.junit.Assert.assertTrue;
28 import java.io.IOException;
30 import org.junit.Test;
32 import org.oran.smo.yangtools.parser.data.YangData;
33 import org.oran.smo.yangtools.parser.data.parser.JsonParser;
34 import org.oran.smo.yangtools.parser.data.parser.JsonParser.JsonArray;
35 import org.oran.smo.yangtools.parser.data.parser.JsonParser.JsonObject;
36 import org.oran.smo.yangtools.parser.data.parser.JsonParser.JsonObjectMemberName;
37 import org.oran.smo.yangtools.parser.data.parser.JsonParser.JsonPrimitive;
38 import org.oran.smo.yangtools.parser.data.parser.JsonParser.JsonValue;
39 import org.oran.smo.yangtools.parser.findings.ParserFindingType;
40 import org.oran.smo.yangtools.parser.input.FileBasedYangInput;
41 import org.oran.smo.yangtools.parser.testutils.YangTestCommon;
43 public class JsonParserTest extends YangTestCommon {
45 private static final String DIR = "src/test/resources/data-parser/";
48 public void test_ok_json1() {
50 final Object jsonRoot = parseJsonFile("json-ok1.json");
54 assertTrue(jsonRoot instanceof JsonObject);
55 final JsonObject jsonRootObject = (JsonObject) jsonRoot;
57 final JsonValue attr1 = getJsonObjectMemberValue(jsonRootObject, "attr1");
58 assertTrue(attr1 instanceof JsonPrimitive);
59 assertTrue(((JsonPrimitive) attr1).getValue() instanceof String);
60 assertTrue(((String) ((JsonPrimitive) attr1).getValue()).equals("some string"));
62 final JsonValue attr2 = getJsonObjectMemberValue(jsonRootObject, "attr2");
63 assertTrue(attr2 instanceof JsonPrimitive);
64 assertTrue(((JsonPrimitive) attr2).getValue() instanceof Boolean);
65 assertTrue(((Boolean) ((JsonPrimitive) attr2).getValue()).equals(Boolean.TRUE));
67 final JsonValue attr3 = getJsonObjectMemberValue(jsonRootObject, "attr3");
68 assertTrue(attr3 instanceof JsonPrimitive);
69 assertTrue(((JsonPrimitive) attr3).getValue() instanceof Long);
70 assertTrue(((Long) ((JsonPrimitive) attr3).getValue()).intValue() == 12);
72 final JsonValue attr4 = getJsonObjectMemberValue(jsonRootObject, "attr4");
73 assertTrue(attr4 instanceof JsonPrimitive);
74 assertTrue(((JsonPrimitive) attr4).getValue() == null);
76 final JsonValue attr5 = getJsonObjectMemberValue(jsonRootObject, "attr5");
77 assertTrue(attr5 instanceof JsonPrimitive);
78 assertTrue(((JsonPrimitive) attr5).getValue() instanceof Boolean);
79 assertTrue(((Boolean) ((JsonPrimitive) attr5).getValue()).equals(Boolean.FALSE));
81 final JsonValue attr6 = getJsonObjectMemberValue(jsonRootObject, "attr6");
82 assertTrue(attr6 instanceof JsonPrimitive);
83 assertTrue(((JsonPrimitive) attr6).getValue() instanceof Double);
84 assertTrue(((Double) ((JsonPrimitive) attr6).getValue()).doubleValue() == 123456789.123456789d);
86 final JsonValue attr7 = getJsonObjectMemberValue(jsonRootObject, "attr7");
87 assertTrue(attr7 instanceof JsonPrimitive);
88 assertTrue(((JsonPrimitive) attr7).getValue() instanceof Long);
89 assertTrue(((Long) ((JsonPrimitive) attr7).getValue()).longValue() == 1234567890123L);
91 final JsonValue attr8 = getJsonObjectMemberValue(jsonRootObject, "attr8");
92 assertTrue(attr8 instanceof JsonPrimitive);
93 assertTrue(((JsonPrimitive) attr8).getValue() instanceof Long);
94 assertTrue(((Long) ((JsonPrimitive) attr8).getValue()).longValue() == Long.MAX_VALUE);
96 final JsonValue attr9 = getJsonObjectMemberValue(jsonRootObject, "attr9");
97 assertTrue(attr9 instanceof JsonPrimitive);
98 assertTrue(((JsonPrimitive) attr9).getValue() instanceof String);
99 assertTrue(((String) ((JsonPrimitive) attr9).getValue()).equals("9223372036854775808"));
101 final JsonValue attr10 = getJsonObjectMemberValue(jsonRootObject, "attr10");
102 assertTrue(attr10 instanceof JsonPrimitive);
103 assertTrue(((JsonPrimitive) attr10).getValue() instanceof Long);
104 assertTrue(((Long) ((JsonPrimitive) attr10).getValue()).longValue() == Long.MIN_VALUE);
106 final JsonValue attr11 = getJsonObjectMemberValue(jsonRootObject, "attr11");
107 assertTrue(attr11 instanceof JsonPrimitive);
108 assertTrue(((JsonPrimitive) attr11).getValue() instanceof String);
109 assertTrue(((String) ((JsonPrimitive) attr11).getValue()).equals("-9223372036854775809"));
111 // ======================
113 final JsonValue attr12 = getJsonObjectMemberValue(jsonRootObject, "attr12");
114 assertTrue(attr12 instanceof JsonObject);
115 assertTrue(((JsonObject) attr12).getValuesByMember().size() == 0);
117 final JsonValue attr13 = getJsonObjectMemberValue(jsonRootObject, "attr13");
118 assertTrue(attr13 instanceof JsonObject);
119 assertTrue(((JsonObject) attr13).getValuesByMember().size() == 2);
121 final JsonObject attr12Object = (JsonObject) attr13;
123 final JsonValue attr17 = getJsonObjectMemberValue(attr12Object, "attr17");
124 assertTrue(attr17 instanceof JsonPrimitive);
125 assertTrue(((JsonPrimitive) attr17).getValue() instanceof String);
126 assertTrue(((String) ((JsonPrimitive) attr17).getValue()).equals("hello"));
128 final JsonValue attr18 = getJsonObjectMemberValue(attr12Object, "module:attr18");
129 assertTrue(attr18 instanceof JsonPrimitive);
130 assertTrue(((JsonPrimitive) attr18).getValue() instanceof Double);
131 assertTrue(((Double) ((JsonPrimitive) attr18).getValue()).doubleValue() == -1d);
133 // ======================
135 final JsonValue attr21 = getJsonObjectMemberValue(jsonRootObject, "attr21");
136 assertTrue(attr21 instanceof JsonArray);
137 assertTrue(((JsonArray) attr21).getValues().size() == 0);
139 final JsonValue attr22 = getJsonObjectMemberValue(jsonRootObject, "attr22");
140 assertTrue(attr22 instanceof JsonArray);
141 assertTrue(((JsonArray) attr22).getValues().size() == 3);
143 assertTrue(((JsonArray) attr22).getValues().get(0) instanceof JsonPrimitive);
144 assertTrue(((JsonPrimitive) ((JsonArray) attr22).getValues().get(0)).getValue() instanceof Double);
145 assertTrue(((Double) ((JsonPrimitive) ((JsonArray) attr22).getValues().get(0)).getValue()).doubleValue() == 1d);
147 assertTrue(((JsonArray) attr22).getValues().get(1) instanceof JsonPrimitive);
148 assertTrue(((JsonPrimitive) ((JsonArray) attr22).getValues().get(1)).getValue() instanceof Long);
149 assertTrue(((Long) ((JsonPrimitive) ((JsonArray) attr22).getValues().get(1)).getValue()).longValue() == 2L);
151 assertTrue(((JsonArray) attr22).getValues().get(2) instanceof JsonPrimitive);
152 assertTrue(((JsonPrimitive) ((JsonArray) attr22).getValues().get(2)).getValue() instanceof Double);
153 assertTrue(((Double) ((JsonPrimitive) ((JsonArray) attr22).getValues().get(2)).getValue()).doubleValue() == -99d);
157 public void test_ok_json2() {
159 final Object jsonRoot = parseJsonFile("json-ok2.json");
163 assertTrue(jsonRoot instanceof JsonObject);
164 final JsonObject jsonRootObject = (JsonObject) jsonRoot;
166 final JsonValue attr1 = getJsonObjectMemberValue(jsonRootObject, "attr1");
167 assertTrue(attr1 instanceof JsonArray);
168 assertTrue(((JsonArray) attr1).getValues().size() == 0);
170 final JsonValue attr2 = getJsonObjectMemberValue(jsonRootObject, "attr2");
171 assertTrue(attr2 instanceof JsonArray);
172 assertTrue(((JsonArray) attr2).getValues().size() == 0);
174 final JsonValue attr3 = getJsonObjectMemberValue(jsonRootObject, "attr3");
175 assertTrue(attr3 instanceof JsonArray);
176 assertTrue(((JsonArray) attr3).getValues().size() == 0);
178 // ======================
180 final JsonValue attr4 = getJsonObjectMemberValue(jsonRootObject, "attr4");
181 assertTrue(attr4 instanceof JsonArray);
182 assertTrue(((JsonArray) attr4).getValues().size() == 5);
184 assertTrue(((JsonArray) attr4).getValues().get(0) instanceof JsonPrimitive);
185 assertTrue(((JsonPrimitive) ((JsonArray) attr4).getValues().get(0)).getValue() instanceof String);
186 assertTrue(((String) ((JsonPrimitive) ((JsonArray) attr4).getValues().get(0)).getValue()).equals("hello"));
188 assertTrue(((JsonArray) attr4).getValues().get(1) instanceof JsonPrimitive);
189 assertTrue(((JsonPrimitive) ((JsonArray) attr4).getValues().get(1)).getValue() instanceof Boolean);
190 assertTrue(((Boolean) ((JsonPrimitive) ((JsonArray) attr4).getValues().get(1)).getValue()).booleanValue() == true);
192 assertTrue(((JsonArray) attr4).getValues().get(2) instanceof JsonPrimitive);
193 assertTrue(((JsonPrimitive) ((JsonArray) attr4).getValues().get(2)).getValue() instanceof Boolean);
194 assertTrue(((Boolean) ((JsonPrimitive) ((JsonArray) attr4).getValues().get(2)).getValue()).booleanValue() == false);
196 assertTrue(((JsonArray) attr4).getValues().get(3) instanceof JsonPrimitive);
197 assertTrue(((JsonPrimitive) ((JsonArray) attr4).getValues().get(3)).getValue() == null);
199 assertTrue(((JsonArray) attr4).getValues().get(4) instanceof JsonPrimitive);
200 assertTrue(((JsonPrimitive) ((JsonArray) attr4).getValues().get(4)).getValue() instanceof Double);
201 assertTrue(((Double) ((JsonPrimitive) ((JsonArray) attr4).getValues().get(4)).getValue())
202 .doubleValue() == 123456789.123456789d);
204 // ======================
206 final JsonValue attr5 = getJsonObjectMemberValue(jsonRootObject, "attr5");
207 assertTrue(attr5 instanceof JsonArray);
208 assertTrue(((JsonArray) attr5).getValues().size() == 4);
210 assertTrue(((JsonArray) attr5).getValues().get(0) instanceof JsonArray);
211 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(0)).getValues().size() == 1);
212 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(0)).getValues().get(0) instanceof JsonPrimitive);
213 assertTrue(((JsonPrimitive) ((JsonArray) ((JsonArray) attr5).getValues().get(0)).getValues().get(0))
214 .getValue() == null);
216 assertTrue(((JsonArray) attr5).getValues().get(1) instanceof JsonArray);
217 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().size() == 2);
218 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().get(0) instanceof JsonPrimitive);
219 assertTrue(((JsonPrimitive) ((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().get(0))
220 .getValue() == null);
221 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().get(1) instanceof JsonPrimitive);
222 assertTrue(((JsonPrimitive) ((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().get(1))
223 .getValue() instanceof Boolean);
224 assertTrue(((Boolean) ((JsonPrimitive) ((JsonArray) ((JsonArray) attr5).getValues().get(1)).getValues().get(1))
225 .getValue()).booleanValue() == true);
227 assertTrue(((JsonArray) attr5).getValues().get(2) instanceof JsonArray);
228 assertTrue(((JsonArray) ((JsonArray) attr5).getValues().get(2)).getValues().size() == 0);
230 assertTrue(((JsonArray) attr5).getValues().get(3) instanceof JsonPrimitive);
231 assertTrue(((JsonPrimitive) ((JsonArray) attr5).getValues().get(3)).getValue() instanceof String);
232 assertTrue(((String) ((JsonPrimitive) ((JsonArray) attr5).getValues().get(3)).getValue()).equals("hello"));
234 // ======================
236 final JsonValue attr6 = getJsonObjectMemberValue(jsonRootObject, "attr6");
237 assertTrue(attr6 instanceof JsonArray);
238 assertTrue(((JsonArray) attr6).getValues().size() == 2);
240 assertTrue(((JsonArray) attr6).getValues().get(0) instanceof JsonArray);
241 assertTrue(((JsonArray) ((JsonArray) attr6).getValues().get(0)).getValues().size() == 0);
243 assertTrue(((JsonArray) attr6).getValues().get(1) instanceof JsonObject);
244 assertTrue(((JsonObject) ((JsonArray) attr6).getValues().get(1)).getValuesByMember().size() == 0);
246 // ======================
248 final JsonValue attr7 = getJsonObjectMemberValue(jsonRootObject, "attr7");
249 assertTrue(attr7 instanceof JsonArray);
250 assertTrue(((JsonArray) attr7).getValues().size() == 2);
252 assertTrue(((JsonArray) attr7).getValues().get(0) instanceof JsonObject);
253 assertTrue(((JsonObject) ((JsonArray) attr7).getValues().get(0)).getValuesByMember().size() == 0);
255 assertTrue(((JsonArray) attr7).getValues().get(1) instanceof JsonObject);
256 assertTrue(((JsonObject) ((JsonArray) attr7).getValues().get(1)).getValuesByMember().size() == 0);
258 // ======================
260 final JsonValue attr8 = getJsonObjectMemberValue(jsonRootObject, "attr8");
261 assertTrue(attr8 instanceof JsonArray);
262 assertTrue(((JsonArray) attr8).getValues().size() == 2);
264 assertTrue(((JsonArray) attr8).getValues().get(0) instanceof JsonObject);
265 assertTrue(((JsonObject) ((JsonArray) attr8).getValues().get(0)).getValuesByMember().size() == 2);
267 final JsonValue attr21 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr8).getValues().get(0), "attr21");
268 assertTrue(attr21 instanceof JsonPrimitive);
269 assertTrue(((JsonPrimitive) attr21).getValue() instanceof String);
270 assertTrue(((String) ((JsonPrimitive) attr21).getValue()).equals("hello"));
272 final JsonValue attr22 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr8).getValues().get(0), "attr22");
273 assertTrue(attr22 instanceof JsonArray);
274 assertTrue(((JsonArray) attr22).getValues().size() == 0);
276 assertTrue(((JsonArray) attr8).getValues().get(1) instanceof JsonObject);
277 assertTrue(((JsonObject) ((JsonArray) attr8).getValues().get(1)).getValuesByMember().size() == 0);
279 // ======================
281 final JsonValue attr9 = getJsonObjectMemberValue(jsonRootObject, "attr9");
282 assertTrue(attr9 instanceof JsonArray);
283 assertTrue(((JsonArray) attr9).getValues().size() == 2);
284 assertTrue(((JsonArray) attr9).getValues().get(0) instanceof JsonObject);
285 assertTrue(((JsonArray) attr9).getValues().get(1) instanceof JsonObject);
286 assertTrue(((JsonObject) ((JsonArray) attr9).getValues().get(0)).getValuesByMember().size() == 2);
287 assertTrue(((JsonObject) ((JsonArray) attr9).getValues().get(1)).getValuesByMember().size() == 0);
289 final JsonValue attr31 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr9).getValues().get(0), "attr31");
290 assertTrue(attr31 instanceof JsonPrimitive);
291 assertTrue(((JsonPrimitive) attr31).getValue() instanceof String);
292 assertTrue(((String) ((JsonPrimitive) attr31).getValue()).equals("hello"));
294 final JsonValue attr32 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr9).getValues().get(0), "attr32");
295 assertTrue(attr32 instanceof JsonArray);
296 assertTrue(((JsonArray) attr32).getValues().size() == 2);
297 assertTrue(((JsonArray) attr32).getValues().get(0) instanceof JsonObject);
298 assertTrue(((JsonArray) attr32).getValues().get(1) instanceof JsonObject);
300 final JsonValue attr33 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr32).getValues().get(1), "attr33");
301 assertTrue(attr33 instanceof JsonPrimitive);
302 assertTrue(((JsonPrimitive) attr33).getValue() instanceof Boolean);
303 assertTrue(((Boolean) ((JsonPrimitive) attr33).getValue()).booleanValue() == true);
305 final JsonValue attr34 = getJsonObjectMemberValue((JsonObject) ((JsonArray) attr32).getValues().get(1), "attr34");
306 assertTrue(attr34 instanceof JsonPrimitive);
307 assertTrue(((JsonPrimitive) attr34).getValue() instanceof Long);
308 assertTrue(((Long) ((JsonPrimitive) attr34).getValue()).longValue() == -99999999999L);
312 public void test_ok_json3() {
314 final Object jsonRoot = parseJsonFile("json-ok3.json");
318 assertTrue(jsonRoot instanceof JsonObject);
319 final JsonObject jsonRootObject = (JsonObject) jsonRoot;
321 verifyObjectMemberStringValue(jsonRootObject, "attr1", "");
322 verifyObjectMemberStringValue(jsonRootObject, "attr2", " ");
323 verifyObjectMemberStringValue(jsonRootObject, "attr3", "\t");
324 verifyObjectMemberStringValue(jsonRootObject, "attr4", "\n");
325 verifyObjectMemberStringValue(jsonRootObject, "attr5", "\"");
326 verifyObjectMemberStringValue(jsonRootObject, "attr6", "\\");
327 verifyObjectMemberStringValue(jsonRootObject, "attr7", "/");
328 verifyObjectMemberStringValue(jsonRootObject, "attr8", "\b");
329 verifyObjectMemberStringValue(jsonRootObject, "attr9", "\f");
330 verifyObjectMemberStringValue(jsonRootObject, "attr10", "\r");
332 verifyObjectMemberStringValue(jsonRootObject, "attr21", " ");
336 public void test_ok_json4() {
338 final Object jsonRoot = parseJsonFile("json-ok4.json");
342 assertTrue(jsonRoot instanceof JsonPrimitive);
343 assertTrue(((JsonPrimitive) jsonRoot).getValue() instanceof String);
344 assertTrue(((String) ((JsonPrimitive) jsonRoot).getValue()).equals("hello"));
348 public void test_ok_json5() {
350 final Object jsonRoot = parseJsonFile("json-ok5.json");
354 assertTrue(jsonRoot instanceof JsonPrimitive);
355 assertTrue(((JsonPrimitive) jsonRoot).getValue() == null);
359 public void test_error_but_continue1() {
361 final Object jsonRoot = parseJsonFile("json-error-but-continue1.json");
363 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
365 assertTrue(jsonRoot instanceof JsonObject);
366 final JsonObject jsonRootObject = (JsonObject) jsonRoot;
368 verifyObjectMemberStringValue(jsonRootObject, "attr1", "comma missing after this string");
369 verifyObjectMemberStringValue(jsonRootObject, "attr2", "comma after this string not needed");
373 public void test_error_but_continue2() {
375 final Object jsonRoot = parseJsonFile("json-error-but-continue2.json");
377 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
379 assertTrue(jsonRoot instanceof JsonArray);
380 final JsonArray jsonRootArray = (JsonArray) jsonRoot;
382 verifyArrayMemberStringValue(jsonRootArray, 0, "comma missing after this string");
383 verifyArrayMemberStringValue(jsonRootArray, 1, "comma after this string not needed");
387 public void test_error1() {
388 parseJsonFile("json-error1.json");
389 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
390 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains(
391 "Expected a quoted member name"));
395 public void test_error2() {
396 parseJsonFile("json-error2.json");
397 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
398 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains("Expected name separator"));
402 public void test_error3() {
403 parseJsonFile("json-error3.json");
404 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
405 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains("Expected a value"));
409 public void test_error4() {
410 parseJsonFile("json-error4.json");
411 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
412 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains("Expected a value"));
416 public void test_error5() {
417 parseJsonFile("json-error5.json");
418 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
419 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains("does not translate"));
423 public void test_error6() {
424 parseJsonFile("json-error6.json");
425 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
426 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains(
427 "Missing terminating double-quote character"));
431 public void test_error7() {
432 parseJsonFile("json-error7.json");
433 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
434 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains("Missing escaped character"));
438 public void test_error8() {
439 parseJsonFile("json-error8.json");
440 assertHasFindingOfType(ParserFindingType.P011_INVALID_CHARACTER_ESCAPING_IN_QUOTED_TEXT.toString());
441 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains(
442 "Unrecognized escaped character"));
446 public void test_error9() {
447 parseJsonFile("json-error9.json");
448 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
449 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains(
450 "Unicode character not correctly escaped"));
454 public void test_error10() {
455 parseJsonFile("json-error10.json");
456 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
457 assertTrue(findingsManager.getAllFindings().iterator().next().getMessage().contains(
458 "Unicode character not correctly escaped"));
461 private void verifyObjectMemberStringValue(final JsonObject jsonObject, final String memberName,
462 final String expected) {
463 final JsonValue attr1 = getJsonObjectMemberValue(jsonObject, memberName);
464 assertTrue(attr1 instanceof JsonPrimitive);
465 assertTrue(((JsonPrimitive) attr1).getValue() instanceof String);
466 assertEquals(expected, (String) ((JsonPrimitive) attr1).getValue());
469 private void verifyArrayMemberStringValue(final JsonArray jsonArray, final int index, final String expected) {
470 final JsonValue attr1 = jsonArray.getValues().get(index);
471 assertTrue(attr1 instanceof JsonPrimitive);
472 assertTrue(((JsonPrimitive) attr1).getValue() instanceof String);
473 assertEquals(expected, (String) ((JsonPrimitive) attr1).getValue());
476 private Object parseJsonFile(final String fileName) {
478 final File jsonFile = new File(DIR + fileName);
479 final FileBasedYangInput fileBasedYangInput = new FileBasedYangInput(jsonFile);
480 final YangData yangInstanceDataInput = new YangData(fileBasedYangInput);
483 return new JsonParser(context, yangInstanceDataInput, fileBasedYangInput.getInputStream()).parse();
484 } catch (IOException e) {
491 @SuppressWarnings("unlikely-arg-type")
493 public void test_json_object_member_handling() {
495 final JsonObject jsonObject = new JsonObject();
497 jsonObject.putMember("member1", JsonPrimitive.valueOf(Boolean.TRUE));
498 jsonObject.putMember("member2", JsonPrimitive.valueOf(Boolean.FALSE));
499 jsonObject.putMember(new JsonObjectMemberName("member3"), JsonPrimitive.valueOf(null));
501 assertTrue(jsonObject.getValues().get("member1").equals(JsonPrimitive.TRUE));
502 assertTrue(jsonObject.getValues().get("member2").equals(JsonPrimitive.FALSE));
503 assertTrue(jsonObject.getValues().get("member3").equals(JsonPrimitive.NULL));
505 assertFalse(jsonObject.getValues().get("member1").equals(null));
506 assertFalse(jsonObject.getValues().get("member2").equals(null));
507 assertTrue(jsonObject.getValues().get("member3").equals(null));
509 assertTrue(jsonObject.getValuesByMember().get(new JsonObjectMemberName("member1")).equals(JsonPrimitive.TRUE));
510 assertTrue(jsonObject.getValuesByMember().get(new JsonObjectMemberName("member2")).equals(JsonPrimitive.FALSE));
511 assertTrue(jsonObject.getValuesByMember().get(new JsonObjectMemberName("member3")).equals(JsonPrimitive.NULL));
513 final JsonObjectMemberName jsonObjectMemberName99 = new JsonObjectMemberName("member99");
515 assertTrue(jsonObjectMemberName99.equals(jsonObjectMemberName99));
516 assertTrue(jsonObjectMemberName99.equals(new JsonObjectMemberName("member99")));
517 assertTrue(jsonObjectMemberName99.equals("member99"));
519 assertFalse(jsonObjectMemberName99.equals(null));
520 assertFalse(jsonObjectMemberName99.equals(new JsonObjectMemberName("memberXXXXXX")));
521 assertFalse(jsonObjectMemberName99.equals("memberXXXXX"));
523 final JsonPrimitive booleanTrue = JsonPrimitive.valueOf(Boolean.TRUE);
525 assertTrue(booleanTrue.equals(JsonPrimitive.valueOf(Boolean.TRUE)));
526 assertTrue(booleanTrue.equals(Boolean.TRUE));
527 assertTrue(booleanTrue.equals(true));
528 assertFalse(booleanTrue.equals(null));
530 final JsonPrimitive nullValue = JsonPrimitive.valueOf(null);
532 assertTrue(nullValue.equals(JsonPrimitive.valueOf(null)));
533 assertTrue(nullValue.equals(null));
534 assertFalse(nullValue.equals(Boolean.TRUE));