[ONOS-4799],[ONOS-4351] Augment inter file linker and Generated Code refactored.
Change-Id: Id1f3ac9c90a632373f51cc75d499c3110216be17
diff --git a/plugin/src/test/resources/augmentTranslator/test.yang b/plugin/src/test/resources/augmentTranslator/test.yang
new file mode 100644
index 0000000..76ea6c9
--- /dev/null
+++ b/plugin/src/test/resources/augmentTranslator/test.yang
@@ -0,0 +1,68 @@
+module test {
+ namespace "test:test";
+ prefix test ;
+
+
+ import test1{
+ prefix test1;
+ }
+
+ import test2{
+ prefix test2;
+ }
+
+ include acme-types;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ container cont2 {
+ leaf leaf {
+ type int32;
+ }
+ }
+ }
+
+
+ augment /cont3 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1/cont2 {
+ leaf leaf2 {
+ type int32;
+ }
+ }
+
+ augment /test1:cont1/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+
+ augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s {
+ leaf a {
+ type int32;
+ }
+ }
+
+ augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s/test2:aa {
+ leaf a {
+ type int32;
+ }
+ container aa {
+ }
+ }
+
+}
+
diff --git a/plugin/src/test/resources/augmentTranslator/test2.yang b/plugin/src/test/resources/augmentTranslator/test2.yang
new file mode 100644
index 0000000..3b5de76
--- /dev/null
+++ b/plugin/src/test/resources/augmentTranslator/test2.yang
@@ -0,0 +1,30 @@
+module test1 {
+ namespace "test1:test1";
+ prefix test1 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ container cont2 {
+ }
+ }
+
+ augment /cont1/cont2 {
+ leaf leaf4 {
+ type int32;
+ }
+ container cont1s {
+ container cont1s {
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/augmentTranslator/test3.yang b/plugin/src/test/resources/augmentTranslator/test3.yang
new file mode 100644
index 0000000..dca558c
--- /dev/null
+++ b/plugin/src/test/resources/augmentTranslator/test3.yang
@@ -0,0 +1,26 @@
+module test2 {
+ namespace "test2:test2";
+ prefix test2 ;
+
+ import test1{
+ prefix test1;
+ }
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+
+ augment /test1:cont1/test1:cont2/test1:cont1s/test1:cont1s {
+ leaf leaf5 {
+ type int32;
+ }
+ container aa {
+ }
+ }
+}
diff --git a/plugin/src/test/resources/augmentTranslator/test4.yang b/plugin/src/test/resources/augmentTranslator/test4.yang
new file mode 100644
index 0000000..daa0f88
--- /dev/null
+++ b/plugin/src/test/resources/augmentTranslator/test4.yang
@@ -0,0 +1,21 @@
+submodule acme-types {
+
+ belongs-to "test" {
+ prefix "test";
+ }
+ import test1{
+ prefix test1;
+ }
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont3 {
+ }
+}
diff --git a/plugin/src/test/resources/interfileietf/ietf-te-topology.yang b/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
index 5b65dff..106b2aa 100644
--- a/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
+++ b/plugin/src/test/resources/interfileietf/ietf-te-topology.yang
@@ -1723,8 +1723,9 @@
uses tet:te-link-state-derived;
}
+ /*
augment "/te-link-event/te-link-attributes/underlay" {
description "Add state attributes to te-link underlay.";
uses te-link-state-underlay-attributes;
- }
+ } */
}
diff --git a/plugin/src/test/resources/manager/module.yang b/plugin/src/test/resources/manager/module.yang
new file mode 100644
index 0000000..212b171
--- /dev/null
+++ b/plugin/src/test/resources/manager/module.yang
@@ -0,0 +1,12 @@
+module test5 {
+ namespace "test5:test";
+ prefix test ;
+
+ revision "2016-07-04" {
+ description "Initial revision.";
+ }
+ typedef abc {
+ type int32;
+ }
+
+}
diff --git a/plugin/src/test/resources/manager/submodule.yang b/plugin/src/test/resources/manager/submodule.yang
new file mode 100644
index 0000000..961147c
--- /dev/null
+++ b/plugin/src/test/resources/manager/submodule.yang
@@ -0,0 +1,15 @@
+submodule test6 {
+
+ belongs-to "test5" {
+ prefix "test";
+ }
+
+ revision "2016-07-04" {
+ description "Initial revision.";
+ }
+ grouping abc {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+}
diff --git a/plugin/src/test/resources/manager/test.yang b/plugin/src/test/resources/manager/test.yang
new file mode 100644
index 0000000..7b2861c
--- /dev/null
+++ b/plugin/src/test/resources/manager/test.yang
@@ -0,0 +1,13 @@
+module test7 {
+ namespace "test5:test";
+ prefix test ;
+
+ revision "2016-07-04" {
+ description "Initial revision.";
+ }
+
+ leaf abc {
+ type int32;
+ }
+
+}
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang
new file mode 100644
index 0000000..772f792
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test.yang
@@ -0,0 +1,25 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test1:cont1/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang
new file mode 100644
index 0000000..9c1cdb0
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMulti/test1.yang
@@ -0,0 +1,26 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang
new file mode 100644
index 0000000..640a15a
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test.yang
@@ -0,0 +1,25 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test1:cont1/test1:cont2/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang
new file mode 100644
index 0000000..c9fbeab
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiAugment/test1.yang
@@ -0,0 +1,34 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang
new file mode 100644
index 0000000..53ed780
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test.yang
@@ -0,0 +1,29 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ import test2{
+ prefix test2;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang
new file mode 100644
index 0000000..9ae5e24
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test1.yang
@@ -0,0 +1,51 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ import test2{
+ prefix test2;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+ }
+
+ augment /test2:cont1/test2:cont2 {
+ leaf a {
+ type int32;
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugment/test2.yang
@@ -0,0 +1,26 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang
new file mode 100644
index 0000000..139e2c5
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test.yang
@@ -0,0 +1,29 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ import test2{
+ prefix test2;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2/test2:cont3/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang
new file mode 100644
index 0000000..ed3716f
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test1.yang
@@ -0,0 +1,51 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ import test2{
+ prefix test2;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+ }
+
+ augment /test2:cont1/test2:cont2/test2:cont3 {
+ leaf a {
+ type int32;
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang
new file mode 100644
index 0000000..f65bef0
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiFileAugmentMulti/test2.yang
@@ -0,0 +1,34 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+
+ augment /cont1/cont2 {
+ container cont3 {
+ leaf a {
+ type string;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang
new file mode 100644
index 0000000..40b2386
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test.yang
@@ -0,0 +1,33 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ import test2 {
+ prefix test2;
+ }
+
+ include test1;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2/cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+
+ augment /cont2/cont3/cont4 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang
new file mode 100644
index 0000000..a19ba35
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test1.yang
@@ -0,0 +1,50 @@
+submodule test1 {
+
+ belongs-to test {
+ prefix test;
+ }
+
+ import test2 {
+ prefix test2;
+ }
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont3 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+
+ augment /cont2/cont3 {
+ container cont4 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+
+ augment /test2:cont1/test2:cont2 {
+ leaf a {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiSubModule/test2.yang
@@ -0,0 +1,26 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang
new file mode 100644
index 0000000..80ee110
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test.yang
@@ -0,0 +1,32 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ import test2 {
+ prefix test2;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont2 {
+ leaf a {
+ type int32;
+ }
+ uses test2:group1;
+ }
+
+ augment /cont2/group1/cont1/cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang
new file mode 100644
index 0000000..298d443
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterMultiUses/test2.yang
@@ -0,0 +1,28 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ grouping group1 {
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang
new file mode 100644
index 0000000..102ec39
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test.yang
@@ -0,0 +1,25 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test1:cont1 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang
new file mode 100644
index 0000000..243ddfe
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingle/test1.yang
@@ -0,0 +1,21 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang
new file mode 100644
index 0000000..772f792
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test.yang
@@ -0,0 +1,25 @@
+module test {
+ namespace "xpath:inter:single";
+ prefix test ;
+
+ import test1{
+ prefix test1;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test1:cont1/test1:cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang
new file mode 100644
index 0000000..b9c5e32
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleAugment/test1.yang
@@ -0,0 +1,29 @@
+module test1 {
+ namespace "xpath:inter:single";
+ prefix test1 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang
new file mode 100644
index 0000000..a8340ab
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test.yang
@@ -0,0 +1,27 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ import test2 {
+ prefix test2;
+ }
+
+ include test1;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2/cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang
new file mode 100644
index 0000000..ebc8750
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test1.yang
@@ -0,0 +1,31 @@
+submodule test1 {
+
+ belongs-to test {
+ prefix test;
+ }
+
+ import test2 {
+ prefix test2;
+ }
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2 {
+ leaf a {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleSubModule/test2.yang
@@ -0,0 +1,26 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang
new file mode 100644
index 0000000..4b15645
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test.yang
@@ -0,0 +1,34 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ import test2 {
+ prefix test2;
+ }
+
+ include test1;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ augment /test2:cont1/test2:cont2/cont2 {
+ leaf a {
+ type int32;
+ }
+ uses group1;
+ }
+
+ augment /test2:cont1/test2:cont2/cont2/group1/cont1/cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang
new file mode 100644
index 0000000..fbc3bcb
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test1.yang
@@ -0,0 +1,42 @@
+submodule test1 {
+
+ belongs-to test {
+ prefix test;
+ }
+
+ import test2 {
+ prefix test2;
+ }
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+
+ grouping group1 {
+ container cont1 {
+ container cont2 {
+ leaf a {
+ type string;
+ }
+ }
+ }
+ }
+
+ augment /test2:cont1/test2:cont2 {
+ leaf a {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang
new file mode 100644
index 0000000..f20ac7d
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/InterFile/InterSingleUses/test2.yang
@@ -0,0 +1,26 @@
+module test2 {
+ namespace "xpath:inter:multi";
+ prefix test2 ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang
new file mode 100644
index 0000000..77d61b9
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMulti/test.yang
@@ -0,0 +1,37 @@
+module test {
+ namespace "xpath:intra:multi";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf2 {
+ type int32;
+ }
+ container cont3 {
+ leaf leaf3 {
+ type int32;
+ }
+ }
+ }
+ }
+
+ augment /cont1/cont2/cont3 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang
new file mode 100644
index 0000000..b53012c
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiAugment/test.yang
@@ -0,0 +1,54 @@
+module test {
+ namespace "xpath:intra:multi";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont2 {
+ leaf leaf2 {
+ type int32;
+ }
+ container cont3 {
+ leaf leaf3 {
+ type int32;
+ }
+ }
+ }
+ }
+
+ augment /cont1/cont2/cont3 {
+ leaf a {
+ type int32;
+ }
+ container cont4 {
+ leaf leaf2 {
+ type int32;
+ }
+ }
+ }
+
+ augment /cont1/cont2/cont3/cont4 {
+ leaf a {
+ type int32;
+ }
+
+ container cont5 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang
new file mode 100644
index 0000000..b5d1c8d
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test.yang
@@ -0,0 +1,28 @@
+module test {
+ namespace "xpath:intra:multi";
+ prefix test ;
+
+ include test1;
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont2/cont3 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang
new file mode 100644
index 0000000..faf672e
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiSubModule/test1.yang
@@ -0,0 +1,28 @@
+submodule test1 {
+
+ belongs-to "test" {
+ prefix "test";
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont3 {
+ leaf leaf3 {
+ type int32;
+ }
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang
new file mode 100644
index 0000000..6cfb133
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraMultiUses/test.yang
@@ -0,0 +1,38 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ grouping group1 {
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ container cont3 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+ }
+
+ container cont2 {
+ uses group1;
+ }
+
+ augment /cont2/group1/cont1/cont3 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang
new file mode 100644
index 0000000..95d9c2b
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingle/test.yang
@@ -0,0 +1,27 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang
new file mode 100644
index 0000000..2925dcf
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleAugment/test.yang
@@ -0,0 +1,39 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont1 {
+ leaf a {
+ type int32;
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+
+ augment /cont1/cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang
new file mode 100644
index 0000000..77401da
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test.yang
@@ -0,0 +1,28 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ include test1;
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+
+ augment /cont2 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang
new file mode 100644
index 0000000..47d4c5c
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleSubModule/test1.yang
@@ -0,0 +1,23 @@
+submodule test1 {
+
+ belongs-to test {
+ prefix test;
+ }
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ container cont2 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+}
+
diff --git a/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang
new file mode 100644
index 0000000..c60668a
--- /dev/null
+++ b/plugin/src/test/resources/xPathLinker/IntraFile/IntraSingleUses/test.yang
@@ -0,0 +1,33 @@
+module test {
+ namespace "xpath:intra:single";
+ prefix test ;
+
+ organization "";
+ contact "";
+
+ description
+ "Defines basic service types for L3VPN service.";
+
+ revision "2015-12-16" {
+ reference "";
+ }
+
+ grouping group1 {
+ container cont1 {
+ leaf leaf1 {
+ type int32;
+ }
+ }
+ }
+
+ container cont2 {
+ uses group1;
+ }
+
+ augment /cont2/group1/cont1 {
+ leaf a {
+ type int32;
+ }
+ }
+}
+