Bug 6261: Introduce resolution of deviation statement during SchemaContext assembly
[yangtools.git] / yang / yang-parser-impl / src / test / resources / deviation-resolution-test / deviation-replace / foo.yang
diff --git a/yang/yang-parser-impl/src/test/resources/deviation-resolution-test/deviation-replace/foo.yang b/yang/yang-parser-impl/src/test/resources/deviation-resolution-test/deviation-replace/foo.yang
new file mode 100644 (file)
index 0000000..af866f4
--- /dev/null
@@ -0,0 +1,105 @@
+module foo {
+    namespace foo;
+    prefix foo;
+
+    revision 2017-01-20;
+
+    deviation "/my-leaf" {
+        deviate replace {
+            type uint32;
+            default 10;
+            units bytes;
+        }
+    }
+
+    deviation "/my-leaf-list-test" {
+        deviate replace {
+            min-elements 3;
+            max-elements 6;
+            config true;
+        }
+    }
+
+    deviation "/my-choice" {
+        deviate replace {
+            mandatory false;
+            foo:custom-property "new arg";
+        }
+    }
+
+    extension custom-property {
+        argument name;
+    }
+
+    leaf my-leaf {
+        type int32;
+        default 100;
+        units kilobytes;
+    }
+
+    leaf-list my-leaf-list-test {
+        type string;
+        min-elements 5;
+        max-elements 10;
+        config false;
+    }
+
+    choice my-choice {
+        mandatory true;
+        foo:custom-property "original arg";
+        case c1 {
+            leaf c1-leaf {
+                type string;
+            }
+        }
+
+        case c2 {
+            leaf c2-leaf {
+                type string;
+            }
+        }
+    }
+
+    container my-cont {
+        uses my-grouping {
+            refine my-used-leaf {
+                default "def-val-added-by-refine";
+                foo:custom-property "arg";
+            }
+        }
+    }
+
+    augment "/my-cont" {
+        leaf my-aug-leaf {
+            type int32;
+            default "def-val";
+            units "minutes";
+            foo:custom-property "arg";
+        }
+    }
+
+    deviation "/my-cont/my-aug-leaf" {
+        deviate replace {
+            type uint32;
+            default "new-def-val";
+            units "seconds";
+            foo:custom-property "new arg";
+        }
+    }
+
+    grouping my-grouping {
+        leaf my-used-leaf {
+            type int32;
+            units "days";
+        }
+    }
+
+    deviation "/my-cont/my-used-leaf" {
+        deviate replace {
+            type uint32;
+            default "new-def-val";
+            foo:custom-property "new arg";
+            units "weeks";
+        }
+    }
+}
\ No newline at end of file