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));
}
}
diff --git a/tests/presence_containers.cpp b/tests/presence_containers.cpp
index 72c9daf..8958627 100644
--- a/tests/presence_containers.cpp
+++ b/tests/presence_containers.cpp
@@ -33,19 +33,19 @@
SECTION("a")
{
input = "a";
- expectedPath.m_nodes = { container_("a") };
+ expectedPath.m_nodes = {container_("a")};
}
SECTION("b/b2")
{
input = "b/b2";
- expectedPath.m_nodes = { container_("b"), container_("b2") };
+ expectedPath.m_nodes = {container_("b"), container_("b2")};
}
SECTION("a/a2/a3")
{
input = "a/a2/a3";
- expectedPath.m_nodes = { container_("a"), container_("a2"), container_("a3") };
+ expectedPath.m_nodes = {container_("a"), container_("a2"), container_("a3")};
}
SECTION("list[quote=lol]/contInList")
@@ -53,7 +53,7 @@
input = "list[quote=lol]/contInList";
auto keys = std::map<std::string, std::string>{
{"quote", "lol"}};
- expectedPath.m_nodes = { listElement_("list", keys), container_("contInList") };
+ expectedPath.m_nodes = {listElement_("list", keys), container_("contInList")};
}
create_ expectedCreate;