Adding initial test cases, include enumeration conversion, address review comments

Change-Id: I59a19f80289464c934ad16d2d2ce1c78a6ba6f2c
diff --git a/tests/utests/netconf/yang/xos-types.yang b/tests/utests/netconf/yang/xos-types.yang
new file mode 100644
index 0000000..289587a
--- /dev/null
+++ b/tests/utests/netconf/yang/xos-types.yang
@@ -0,0 +1,87 @@
+module xos-types {
+  namespace "urn:ietf:params:xml:ns:yang:xos-types";
+  prefix xtype;
+  yang-version 1.1;
+
+  import ietf-yang-types { prefix yang; }
+  import ietf-inet-types { prefix inet; }
+  
+  organization
+   "Open Networking Lab (CORD) / Corenova Technologies";
+
+  contact
+    "Larry Peterson <llp@onlab.us>
+     Peter K. Lee <peter@corenova.com>";
+  
+  description
+   "This module contains a collection of common models and types for XOS.
+
+    Copyright (c) 2016 ON.LAB and the persons identified as authors of
+    the code.  All rights reserved.
+
+    Redistribution and use in source and binary forms, with or without
+    modification, is permitted pursuant to, and subject to the license
+    terms of the Apache License, Version 2.0 which accompanies this
+    distribution, and is available at
+    (http://www.apache.org/licenses/LICENSE-2.0).";
+  
+  revision 2016-09-12 {
+    description "Initial revision.";
+  }
+
+  /*
+   * Typedefs
+   */
+  typedef unique-identifier {
+    description "defines valid formats for external reference id";
+    type union {
+      type uint32 { range 1..max; }
+      type yang:uuid;
+      type inet:uri;
+    }
+  }
+  typedef flow-identifier {
+    description "defines valid format for identifying a flow";
+    type yang:uuid;
+  }
+  typedef network-identifier {
+    description "defines valid format for identifying a network";
+    type yang:uuid;
+  }
+  typedef mac-address {
+    description "defines valid format for mac-address";
+    type yang:mac-address;
+  }
+  typedef bandwidth {
+    type uint32 {
+      range 1000000..max; // should be at least 1 Mbps?  
+    }
+    units 'bps';
+  }
+  typedef vlan {
+    type uint16 { range 0..4095; }
+  }
+  typedef isolation {
+    type enumeration {
+      enum vm     { description 'Virtual Machine'; }
+      enum lxc    { description 'Container'; }
+      enum hybrid { description 'Container in Virtual Machine'; }
+    }
+    default 'vm';
+  }
+  typedef access-role {
+    type enumeration {
+      enum admin;
+      enum staff;
+      enum user;
+    }
+    default 'user';
+  }
+  typedef certificate {
+    description
+      "Captures a security certificate, should be improved for better validation";
+    type string {
+      length 0..1024;
+    }
+  }
+}