Add types for leaves
Change-Id: Ibea2945920e523d2f3439eed2c12a5d719d178f1
diff --git a/tests/leaf_editing.cpp b/tests/leaf_editing.cpp
index 5894921..09e8504 100644
--- a/tests/leaf_editing.cpp
+++ b/tests/leaf_editing.cpp
@@ -15,10 +15,15 @@
{
Schema schema;
schema.addContainer("", "contA");
- schema.addLeaf("", "leaf");
- schema.addLeaf("contA", "leafInCont");
+ schema.addLeaf("", "leafString", yang::LeafDataTypes::String);
+ schema.addLeaf("", "leafDecimal", yang::LeafDataTypes::Decimal);
+ schema.addLeaf("", "leafBool", yang::LeafDataTypes::Bool);
+ schema.addLeaf("", "leafInt", yang::LeafDataTypes::Int);
+ schema.addLeaf("", "leafUint", yang::LeafDataTypes::Uint);
+ schema.addLeafEnum("", "leafEnum", {"lol", "data", "coze"});
+ schema.addLeaf("contA", "leafInCont", yang::LeafDataTypes::String);
schema.addList("", "list", {"number"});
- schema.addLeaf("list", "leafInList");
+ schema.addLeaf("list", "leafInList", yang::LeafDataTypes::String);
Parser parser(schema);
std::string input;
std::ostringstream errorStream;
@@ -27,11 +32,11 @@
{
set_ expected;
- SECTION("set leaf some_data")
+ SECTION("set leafString some_data")
{
- input = "set leaf some_data";
- expected.m_path.m_nodes.push_back(leaf_("leaf"));
- expected.m_data = "some_data";
+ input = "set leafString some_data";
+ expected.m_path.m_nodes.push_back(leaf_("leafString"));
+ expected.m_data = std::string("some_data");
}
SECTION("set contA/leafInCont more_data")
@@ -39,7 +44,55 @@
input = "set contA/leafInCont more_data";
expected.m_path.m_nodes.push_back(container_("contA"));
expected.m_path.m_nodes.push_back(leaf_("leafInCont"));
- expected.m_data = "more_data";
+ expected.m_data = std::string("more_data");
+ }
+
+ SECTION("set list[number=1]/leafInList another_data")
+ {
+ input = "set list[number=1]/leafInList another_data";
+ auto keys = std::map<std::string, std::string>{
+ {"number", "1"}};
+ expected.m_path.m_nodes.push_back(listElement_("list", keys));
+ expected.m_path.m_nodes.push_back(leaf_("leafInList"));
+ expected.m_data = std::string("another_data");
+ }
+
+ SECTION("data types")
+ {
+ SECTION("string")
+ {
+ input = "set leafString somedata";
+ expected.m_path.m_nodes.push_back(leaf_("leafString"));
+ expected.m_data = std::string("somedata");
+ }
+
+ SECTION("int")
+ {
+ input = "set leafInt 2";
+ expected.m_path.m_nodes.push_back(leaf_("leafInt"));
+ expected.m_data = 2;
+ }
+
+ SECTION("decimal")
+ {
+ input = "set leafDecimal 3.14159";
+ expected.m_path.m_nodes.push_back(leaf_("leafDecimal"));
+ expected.m_data = 3.14159;
+ }
+
+ SECTION("enum")
+ {
+ input = "set leafEnum coze";
+ expected.m_path.m_nodes.push_back(leaf_("leafEnum"));
+ expected.m_data = enum_("coze");
+ }
+
+ SECTION("bool")
+ {
+ input = "set leafBool true";
+ expected.m_path.m_nodes.push_back(leaf_("leafBool"));
+ expected.m_data = true;
+ }
}
command_ command = parser.parseCommand(input, errorStream);
@@ -78,6 +131,26 @@
}
}
+ SECTION("wrong types")
+ {
+ SECTION("set leafBool blabla")
+ {
+ input = "set leafBool blabla";
+ }
+ SECTION("set leafUint blabla")
+ {
+ input = "set leafUint blabla";
+ }
+ SECTION("set leafInt blabla")
+ {
+ input = "set leafInt blabla";
+ }
+ SECTION("set leafEnum blabla")
+ {
+ input = "set leafEnum blabla";
+ }
+ }
+
REQUIRE_THROWS(parser.parseCommand(input, errorStream));
}
}