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.model.schema.test;
23 import static org.junit.Assert.assertTrue;
25 import java.util.Arrays;
26 import java.util.Collections;
27 import java.util.List;
29 import org.junit.Test;
31 import org.oran.smo.yangtools.parser.model.ModulePrefixResolver;
32 import org.oran.smo.yangtools.parser.model.schema.ModuleAndNamespaceResolver;
33 import org.oran.smo.yangtools.parser.testutils.YangTestCommon;
35 public class PrefixAndNamespaceResolverTest extends YangTestCommon {
38 public void test_all_modules() {
40 final List<String> absoluteImplementsFilePath = Arrays.asList(
41 "src/test/resources/model-schema/prefix-and-namespace-test/module1.yang",
42 "src/test/resources/model-schema/prefix-and-namespace-test/module2.yang",
43 "src/test/resources/model-schema/prefix-and-namespace-test/module3.yang",
44 "src/test/resources/model-schema/prefix-and-namespace-test/submodule4.yang");
45 final List<String> absoluteImportsFilePath = Collections.<String> emptyList();
47 parseAbsoluteYangModels(absoluteImplementsFilePath, absoluteImportsFilePath);
51 final ModuleAndNamespaceResolver namespaceResolver = yangDeviceModel.getTopLevelSchema()
52 .getModuleNamespaceResolver();
53 assertTrue(namespaceResolver.getNamespaceForModule("module1").equals("test:module1"));
54 assertTrue(namespaceResolver.getNamespaceForModule("module2").equals("test:module2"));
55 assertTrue(namespaceResolver.getNamespaceForModule("module3").equals("test:module3"));
56 assertTrue(namespaceResolver.getNamespaceForModule("submodule4").equals("test:module1"));
57 assertTrue(namespaceResolver.getNamespaceForModule("unknownmodule") == null);
59 assertTrue(namespaceResolver.getModuleForNamespace("test:module1").equals("module1"));
60 assertTrue(namespaceResolver.getModuleForNamespace("test:module2").equals("module2"));
61 assertTrue(namespaceResolver.getModuleForNamespace("test:module3").equals("module3"));
62 assertTrue(namespaceResolver.getModuleForNamespace("unknown namespace") == null);
64 final ModulePrefixResolver prefixResolverModule1 = getModule("module1").getPrefixResolver();
66 assertTrue(prefixResolverModule1.getDefaultModuleIdentity().getModuleName().equals("module1"));
67 assertTrue(prefixResolverModule1.getModuleForPrefix("this").getModuleName().equals("module1"));
68 assertTrue(prefixResolverModule1.getModuleForPrefix("mod2").getModuleName().equals("module2"));
69 assertTrue(prefixResolverModule1.getModuleForPrefix("mod3").getModuleName().equals("module3"));
70 assertTrue(prefixResolverModule1.getDefaultNamespaceUri().equals("test:module1"));
71 assertTrue(prefixResolverModule1.resolveNamespaceUri("this").equals("test:module1"));
72 assertTrue(prefixResolverModule1.resolveNamespaceUri("mod2").equals("test:module2"));
73 assertTrue(prefixResolverModule1.resolveNamespaceUri("mod3").equals("test:module3"));
75 final ModulePrefixResolver prefixResolverModule2 = getModule("module2").getPrefixResolver();
77 assertTrue(prefixResolverModule2.getDefaultModuleIdentity().getModuleName().equals("module2"));
78 assertTrue(prefixResolverModule2.getModuleForPrefix("this").getModuleName().equals("module2"));
79 assertTrue(prefixResolverModule2.getModuleForPrefix("mod1").getModuleName().equals("module1"));
80 assertTrue(prefixResolverModule2.getModuleForPrefix("mod3").getModuleName().equals("module3"));
81 assertTrue(prefixResolverModule2.getDefaultNamespaceUri().equals("test:module2"));
82 assertTrue(prefixResolverModule2.resolveNamespaceUri("this").equals("test:module2"));
83 assertTrue(prefixResolverModule2.resolveNamespaceUri("mod1").equals("test:module1"));
84 assertTrue(prefixResolverModule2.resolveNamespaceUri("mod3").equals("test:module3"));
86 final ModulePrefixResolver prefixResolverModule3 = getModule("module3").getPrefixResolver();
88 assertTrue(prefixResolverModule3.getDefaultModuleIdentity().getModuleName().equals("module3"));
89 assertTrue(prefixResolverModule3.getModuleForPrefix("this").getModuleName().equals("module3"));
90 assertTrue(prefixResolverModule3.getModuleForPrefix("mod1").getModuleName().equals("module1"));
91 assertTrue(prefixResolverModule3.getModuleForPrefix("mod2").getModuleName().equals("module2"));
92 assertTrue(prefixResolverModule3.getDefaultNamespaceUri().equals("test:module3"));
93 assertTrue(prefixResolverModule3.resolveNamespaceUri("this").equals("test:module3"));
94 assertTrue(prefixResolverModule3.resolveNamespaceUri("mod1").equals("test:module1"));
95 assertTrue(prefixResolverModule3.resolveNamespaceUri("mod2").equals("test:module2"));
97 final ModulePrefixResolver prefixResolverSubmodule4 = getSubModule("submodule4").getPrefixResolver();
99 assertTrue(prefixResolverSubmodule4.getDefaultModuleIdentity().getModuleName().equals("module1"));
100 assertTrue(prefixResolverSubmodule4.getModuleForPrefix("mod1").getModuleName().equals("module1"));
101 assertTrue(prefixResolverSubmodule4.getModuleForPrefix("mod2").getModuleName().equals("module2"));
102 assertTrue(prefixResolverSubmodule4.getModuleForPrefix("mod3").getModuleName().equals("module3"));
103 assertTrue(prefixResolverSubmodule4.getDefaultNamespaceUri().equals("test:module1"));
104 assertTrue(prefixResolverSubmodule4.resolveNamespaceUri("mod1").equals("test:module1"));
105 assertTrue(prefixResolverSubmodule4.resolveNamespaceUri("mod2").equals("test:module2"));
106 assertTrue(prefixResolverSubmodule4.resolveNamespaceUri("mod3").equals("test:module3"));