[ONOS-4941][ONOS-4883][ONOS-4979]Grouping and uses interfile linking issue + defect fix
Change-Id: I5e8145f05d3ef570d4ecbbe885c93de172de0ea3
diff --git a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CompilerAnnotationListenerTest.java b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CompilerAnnotationListenerTest.java
new file mode 100644
index 0000000..cbc4009
--- /dev/null
+++ b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/CompilerAnnotationListenerTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2016-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.yangutils.parser.impl.listeners;
+
+import java.io.IOException;
+import org.junit.Test;
+import org.onosproject.yangutils.datamodel.YangAppDataStructure;
+import org.onosproject.yangutils.datamodel.YangCompilerAnnotation;
+import org.onosproject.yangutils.datamodel.YangDataStructure;
+import org.onosproject.yangutils.datamodel.YangModule;
+import org.onosproject.yangutils.datamodel.YangNode;
+import org.onosproject.yangutils.datamodel.YangNodeType;
+import org.onosproject.yangutils.parser.exceptions.ParserException;
+import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.Is.is;
+
+/**
+ * Test cases for compiler annotation listener.
+ */
+public class CompilerAnnotationListenerTest {
+
+ private final YangUtilsParserManager manager = new YangUtilsParserManager();
+
+ /**
+ * Checks valid compiler annotation statements.
+ */
+ @Test
+ public void processValidCompilerAnnotation() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/ValidCompilerAnnotation.yang");
+
+ // Check whether the data model tree returned is of type module.
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("event"));
+
+ YangCompilerAnnotation compilerAnnotation = yangNode.getCompilerAnnotationList()
+ .iterator().next();
+ assertThat(compilerAnnotation.getPrefix(), is("ca"));
+ assertThat(compilerAnnotation.getPath(), is("/candidate-servers/server"));
+
+ YangAppDataStructure appDataStructure = compilerAnnotation.getYangAppDataStructure();
+ assertThat(appDataStructure.getPrefix(), is("abc"));
+ assertThat(appDataStructure.getDataStructure(), is(YangDataStructure.MAP));
+
+ assertThat(appDataStructure.getKeyList().iterator().next(), is("name"));
+ }
+}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ListListenerTest.java b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ListListenerTest.java
index 2cde776..7c0dae6 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ListListenerTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/ListListenerTest.java
@@ -23,13 +23,13 @@
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.onosproject.yangutils.datamodel.YangContainer;
-import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.datamodel.YangLeaf;
import org.onosproject.yangutils.datamodel.YangList;
import org.onosproject.yangutils.datamodel.YangModule;
import org.onosproject.yangutils.datamodel.YangNode;
import org.onosproject.yangutils.datamodel.YangNodeType;
import org.onosproject.yangutils.datamodel.YangStatusType;
+import org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
@@ -208,4 +208,30 @@
thrown.expectMessage("YANG file error : list name 1valid is not valid.");
YangNode node = manager.getDataModel("src/test/resources/ListInvalidIdentifier.yang");
}
+
+ /**
+ * Checks list with identifier name as enum.
+ */
+ @Test
+ public void processListWithIdentifierNameEnum() throws IOException, ParserException {
+
+ YangNode node = manager.getDataModel("src/test/resources/ListWithIdentifierNameEnum.yang");
+
+ assertThat((node instanceof YangModule), is(true));
+
+ // Check whether the node type is set properly to module.
+ assertThat(node.getNodeType(), is(YangNodeType.MODULE_NODE));
+
+ // Check whether the module name is set correctly.
+ YangModule yangNode = (YangModule) node;
+ assertThat(yangNode.getName(), is("Test"));
+
+ // Check whether the list is child of module
+ YangList yangList = (YangList) yangNode.getChild();
+ assertThat(yangList.getName(), is("enumList"));
+ assertThat(yangList.getKeyList().contains("enum"), is(true));
+ YangLeaf leaf = yangList.getListOfLeaf().iterator().next();
+ assertThat(leaf.getName(), is("enum"));
+ assertThat(leaf.getDataType().getDataType(), is(YangDataTypes.ENUMERATION));
+ }
}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/WhenListenerTest.java b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/WhenListenerTest.java
index fcba7c0..fadbc01 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/WhenListenerTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/parser/impl/listeners/WhenListenerTest.java
@@ -16,6 +16,8 @@
package org.onosproject.yangutils.parser.impl.listeners;
+import java.io.IOException;
+import java.util.ListIterator;
import org.junit.Test;
import org.onosproject.yangutils.datamodel.YangContainer;
import org.onosproject.yangutils.datamodel.YangLeaf;
@@ -25,9 +27,6 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
-import java.io.IOException;
-import java.util.ListIterator;
-
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
@@ -49,12 +48,12 @@
assertThat(yangNode.getName(), is("Test"));
YangList yangList = (YangList) yangNode.getChild();
+ String expectedConstraint = "../switching-capability = 'TDM'";
assertThat(yangList.getName(), is("interface-switching-capability"));
+ assertThat(yangList.getWhen().getCondition(), is(expectedConstraint));
YangContainer container = (YangContainer) yangList.getNextSibling();
assertThat(container.getName(), is("time-division-multiplex-capable"));
-
- String expectedConstraint = "../switching-capability = 'TDM'";
assertThat(container.getWhen().getCondition(), is(expectedConstraint));
}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIdentityLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIdentityLinkingTest.java
index 7805bf0..6c29c28 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIdentityLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIdentityLinkingTest.java
@@ -15,6 +15,8 @@
*/
package org.onosproject.yangutils.plugin.manager;
+import java.io.IOException;
+import java.util.ListIterator;
import org.apache.maven.plugin.MojoExecutionException;
import org.junit.Rule;
import org.junit.Test;
@@ -34,12 +36,10 @@
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
-import java.io.IOException;
-import java.util.ListIterator;
-
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
/**
* Test cases for testing inter file linking for identity.
@@ -73,6 +73,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -162,6 +164,8 @@
// Add references to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -244,6 +248,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -302,7 +308,7 @@
assertThat(yangIdentityRef.getBaseIdentity().getName(), is("ref-address-family"));
assertThat(yangIdentityRef.getReferredIdentity().getName(), is("ref-address-family"));
assertThat(yangIdentityRef.getResolvableStatus(), is(ResolvableStatus.RESOLVED));
- }
+ }
/**
* Checks inter file feature linking with included file with dependency.
@@ -332,6 +338,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -417,6 +425,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -436,10 +446,6 @@
utilManager.parseYangFileInfoSet();
utilManager.createYangNodeSet();
- YangNode selfNode = null;
- YangNode refNode1 = null;
- YangNode refNode2 = null;
-
// Create YANG node set
yangLinkerManager.createYangNodeSet(utilManager.getYangNodeSet());
@@ -452,6 +458,9 @@
// Add references to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ // Update the priority for all the files.
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -478,6 +487,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -570,6 +581,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIfFeatureLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIfFeatureLinkingTest.java
index c4c501d..4f914ab 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIfFeatureLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileIfFeatureLinkingTest.java
@@ -36,6 +36,7 @@
import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.INTRA_FILE_RESOLVED;
import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.RESOLVED;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
/**
* Test cases for testing inter file linking.
@@ -67,6 +68,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -137,6 +140,8 @@
// Add references to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -201,6 +206,9 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ // Update the priority for all the files.
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -272,6 +280,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -337,6 +347,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -409,6 +421,8 @@
// Add references to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLeafrefLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLeafrefLinkingTest.java
index f27ae11..cc39c53 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLeafrefLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLeafrefLinkingTest.java
@@ -16,6 +16,9 @@
package org.onosproject.yangutils.plugin.manager;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.ListIterator;
import org.apache.maven.plugin.MojoExecutionException;
import org.junit.Rule;
import org.junit.Test;
@@ -32,15 +35,12 @@
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.ListIterator;
-
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.RESOLVED;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.LEAFREF;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
/**
* Test cases for testing leafref inter file linking.
@@ -74,6 +74,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -146,6 +148,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -209,6 +213,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -278,6 +284,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLinkingTest.java
index e5ed4cf..a99cd6c 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterFileLinkingTest.java
@@ -24,6 +24,7 @@
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.onosproject.yangutils.datamodel.YangAugment;
+import org.onosproject.yangutils.datamodel.YangChoice;
import org.onosproject.yangutils.datamodel.YangContainer;
import org.onosproject.yangutils.datamodel.YangDerivedInfo;
import org.onosproject.yangutils.datamodel.YangGrouping;
@@ -49,6 +50,7 @@
import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.RESOLVED;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.DERIVED;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.STRING;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.deleteDirectory;
/**
@@ -84,6 +86,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -154,6 +158,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -227,6 +233,8 @@
// Add reference to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -300,6 +308,8 @@
// Add reference to include list.
yangLinkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -370,6 +380,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -440,6 +452,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -511,6 +525,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -579,6 +595,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -837,4 +855,80 @@
YangList list = ((YangList) uses.getNextSibling());
assertThat(list.getName(), is("connectivity-matrix"));
}
+
+ /**
+ * Checks contents of uses are copied as child of grouping.
+ */
+ @Test
+ public void interFileUsesInsideChildOfGrouping()
+ throws IOException, ParserException, MojoExecutionException {
+
+ String searchDir = "src/test/resources/interFileUsesInsideChildOfGrouping";
+ utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(searchDir));
+ utilManager.parseYangFileInfoSet();
+ utilManager.resolveDependenciesUsingLinker();
+
+ YangNode selfNode = null;
+ YangNode refNode1 = null;
+
+ for (YangNode rootNode : utilManager.getYangNodeSet()) {
+ if (rootNode.getName().equals("ietf-network")) {
+ selfNode = rootNode;
+ } else if (rootNode.getName().equals("ietf-te-topology")) {
+ refNode1 = rootNode;
+ }
+ }
+
+ // Check whether the data model tree returned is of type module.
+ assertThat(selfNode instanceof YangModule, is(true));
+ assertThat(selfNode.getNodeType(), is(MODULE_NODE));
+ YangModule yangNode = (YangModule) selfNode;
+ assertThat(yangNode.getName(), is("ietf-network"));
+
+ YangModule refNode = (YangModule) refNode1;
+ assertThat(refNode.getName(), is("ietf-te-topology"));
+
+ YangAugment augment = ((YangAugment) refNode.getChild().getNextSibling().
+ getNextSibling().getNextSibling().getNextSibling().getNextSibling());
+ assertThat(augment.getName(), is("/nw:networks/nw:network/nt:link"));
+
+ YangUses uses = ((YangUses) augment.getChild());
+ assertThat(uses.getResolvableStatus(), is(RESOLVED));
+ YangContainer container = ((YangContainer) uses.getNextSibling());
+ assertThat(container.getName(), is("te"));
+
+ container = ((YangContainer) container.getChild());
+ assertThat(container.getName(), is("config"));
+
+ uses = ((YangUses) container.getChild().getNextSibling());
+ assertThat(uses.getName(), is("te-link-config-attributes"));
+ assertThat(uses.getResolvableStatus(), is(RESOLVED));
+
+ YangContainer container1 = ((YangContainer) uses.getNextSibling());
+ assertThat(container1.getName(), is("te-link-attributes"));
+
+ container = ((YangContainer) container1.getChild());
+ assertThat(container.getName(), is("underlay"));
+
+ uses = ((YangUses) container.getChild());
+ assertThat(uses.getName(), is("te-link-underlay-attributes"));
+ assertThat(uses.getResolvableStatus(), is(RESOLVED));
+
+ container = ((YangContainer) uses.getNextSibling());
+ assertThat(container.getName(), is("underlay-primary-path"));
+
+ YangList yangList = ((YangList) container.getChild());
+ assertThat(yangList.getName(), is("path-element"));
+
+ uses = ((YangUses) yangList.getChild());
+ assertThat(uses.getName(), is("te-path-element"));
+ assertThat(uses.getResolvableStatus(), is(RESOLVED));
+
+ uses = ((YangUses) uses.getNextSibling());
+ assertThat(uses.getName(), is("explicit-route-subobject"));
+ assertThat(uses.getResolvableStatus(), is(RESOLVED));
+
+ YangChoice choice = ((YangChoice) uses.getNextSibling());
+ assertThat(choice.getName(), is("type"));
+ }
}
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileLeafrefLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileLeafrefLinkingTest.java
index fb1b523..3b50365 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileLeafrefLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileLeafrefLinkingTest.java
@@ -16,6 +16,10 @@
package org.onosproject.yangutils.plugin.manager;
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
@@ -45,17 +49,13 @@
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsNull.nullValue;
import static org.onosproject.yangutils.datamodel.YangNodeType.MODULE_NODE;
import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.RESOLVED;
import static org.onosproject.yangutils.datamodel.utils.builtindatatype.YangDataTypes.LEAFREF;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
/**
* Test cases for testing leafref intra file linking.
@@ -88,6 +88,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -149,6 +151,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -212,6 +216,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -277,6 +283,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -316,6 +324,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -340,6 +350,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -402,6 +414,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -463,6 +477,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -522,6 +538,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -584,6 +602,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -605,6 +625,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -664,6 +686,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -725,6 +749,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -786,6 +812,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -844,6 +872,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -905,6 +935,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -963,6 +995,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1024,6 +1058,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1084,6 +1120,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1144,6 +1182,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1206,6 +1246,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -1233,6 +1275,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
//Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
}
@@ -1255,6 +1299,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1313,6 +1359,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1374,6 +1422,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1434,6 +1484,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1533,6 +1585,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1592,6 +1646,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1660,6 +1716,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1735,6 +1793,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
@@ -1801,6 +1861,8 @@
// Add references to import list.
yangLinkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
+
// Carry out inter-file linking.
yangLinkerManager.processInterFileLinking(utilManager.getYangNodeSet());
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileUsesLinkingTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileUsesLinkingTest.java
index 44ce858..075d2f9 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileUsesLinkingTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/IntraFileUsesLinkingTest.java
@@ -486,7 +486,7 @@
// Check whether uses is getting resolved.
assertThat(uses.getResolvableStatus(),
- is(ResolvableStatus.RESOLVED));
+ is(ResolvableStatus.INTRA_FILE_RESOLVED));
// Check whether grouping is the child of module.
assertThat((yangNode.getChild() instanceof YangGrouping), is(true));
@@ -610,7 +610,7 @@
// Check whether uses is getting resolved.
assertThat(yangUses1.getResolvableStatus(),
- is(ResolvableStatus.RESOLVED));
+ is(ResolvableStatus.INTRA_FILE_RESOLVED));
// Check whether grouping is the sibling of uses.
YangGrouping yangGrouping1 = (YangGrouping) yangUses1.getNextSibling();
diff --git a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/YangXpathLinkerTest.java b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/YangXpathLinkerTest.java
index 7fcd7f1..5dd50ca 100644
--- a/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/YangXpathLinkerTest.java
+++ b/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/YangXpathLinkerTest.java
@@ -18,7 +18,6 @@
import java.io.IOException;
import java.util.List;
-
import org.apache.maven.plugin.MojoExecutionException;
import org.junit.Test;
import org.onosproject.yangutils.datamodel.ResolvableType;
@@ -32,6 +31,7 @@
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
+import static org.onosproject.yangutils.linker.impl.YangLinkerUtils.updateFilePriority;
/**
* Unit test cases for x-path linker.
@@ -237,6 +237,7 @@
utilManager.parseYangFileInfoSet();
utilManager.createYangNodeSet();
linkerManager.createYangNodeSet(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
@@ -267,6 +268,7 @@
utilManager.parseYangFileInfoSet();
utilManager.createYangNodeSet();
linkerManager.createYangNodeSet(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
@@ -451,6 +453,7 @@
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
@@ -484,6 +487,7 @@
linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
String targetNodeName = null;
@@ -516,6 +520,7 @@
linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
String targetNodeName = null;
@@ -548,6 +553,7 @@
linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
@@ -581,6 +587,7 @@
linkerManager.createYangNodeSet(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;
@@ -614,6 +621,7 @@
linkerManager.linkSubModulesToParentModule(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesImportList(utilManager.getYangNodeSet());
linkerManager.addRefToYangFilesIncludeList(utilManager.getYangNodeSet());
+ updateFilePriority(utilManager.getYangNodeSet());
linkerManager.processInterFileLinking(utilManager.getYangNodeSet());
YangNode targetNode = null;