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.dom.test;
23 import static org.junit.Assert.assertTrue;
25 import java.util.Arrays;
27 import org.junit.Test;
29 import org.oran.smo.yangtools.parser.data.dom.YangDataDomDocumentRoot;
30 import org.oran.smo.yangtools.parser.data.dom.YangDataDomDocumentRoot.SourceDataType;
31 import org.oran.smo.yangtools.parser.data.dom.YangDataDomNode;
32 import org.oran.smo.yangtools.parser.findings.ParserFindingType;
33 import org.oran.smo.yangtools.parser.testutils.YangTestCommon;
35 public class XmlRootElementsTest extends YangTestCommon {
37 private static final String DIR = "src/test/resources/data-dom/xml-test/";
40 public void testRootElement_Config() {
42 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
43 parseAbsoluteYangData(Arrays.asList(DIR + "root-config.xml"));
46 checkDataParsedCorrectly();
50 public void testRootElement_InstanceDataSet() {
52 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
53 parseAbsoluteYangData(Arrays.asList(DIR + "root-instance-data-set.xml"));
56 checkDataParsedCorrectly();
60 public void testRootElement_data() {
62 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
63 parseAbsoluteYangData(Arrays.asList(DIR + "root-data.xml"));
66 checkDataParsedCorrectly();
70 public void testRootElement_assume_module_root_element() {
72 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
73 parseAbsoluteYangData(Arrays.asList(DIR + "root-assume-module-root-element.xml"));
75 assertHasFindingOfType(ParserFindingType.P071_INCORRECT_ROOT_ELEMENT_OF_DATA_FILE.toString());
76 checkDataParsedCorrectly();
80 public void testRootElement_InstanceDataSet_Wrong() {
82 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
83 parseAbsoluteYangData(Arrays.asList(DIR + "root-instance-data-set-wrong.xml"));
85 assertHasFindingOfType(ParserFindingType.P079_EMPTY_DATA_FILE.toString());
89 public void testRootElement_RpcReply() {
91 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
92 parseAbsoluteYangData(Arrays.asList(DIR + "root-rpc-reply.xml"));
94 assertHasNotFindingOfType(ParserFindingType.P071_INCORRECT_ROOT_ELEMENT_OF_DATA_FILE.toString());
95 checkDataParsedCorrectly();
99 public void testRootElement_RpcReply_Wrong() {
101 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
102 parseAbsoluteYangData(Arrays.asList(DIR + "root-rpc-reply-wrong-no-data.xml"));
104 assertHasFindingOfType(ParserFindingType.P079_EMPTY_DATA_FILE.toString());
108 public void testRootElement_no_namespace() {
110 severityCalculator.suppressFinding(ParserFindingType.P075_CORRESPONDING_SCHEMA_NODE_NOT_FOUND.toString());
111 parseAbsoluteYangData(Arrays.asList(DIR + "root-data-no-namespace.xml"));
113 assertHasFindingOfType(ParserFindingType.P015_INVALID_SYNTAX_IN_DOCUMENT.toString());
116 private void checkDataParsedCorrectly() {
118 final YangDataDomDocumentRoot root = yangDeviceModel.getYangInstanceDataInputs().get(0)
119 .getYangDataDomDocumentRoot();
121 final YangDataDomNode cont1 = getChildDataDomNode(root, "cont1");
122 assertTrue(cont1.getNamespace().equals("test:module"));
124 final YangDataDomNode leaf1 = getChildDataDomNode(cont1, "leaf1");
125 assertTrue(leaf1.getNamespace().equals("test:module"));
126 assertTrue(leaf1.getValue().equals(new String("42")));
127 assertTrue(leaf1.getSourceDataType() == SourceDataType.XML);