aboutsummaryrefslogtreecommitdiff
path: root/test/base/PropertyTreeTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/base/PropertyTreeTest.cpp')
-rw-r--r--test/base/PropertyTreeTest.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/base/PropertyTreeTest.cpp b/test/base/PropertyTreeTest.cpp
new file mode 100644
index 00000000..24d7ca9e
--- /dev/null
+++ b/test/base/PropertyTreeTest.cpp
@@ -0,0 +1,26 @@
+#include "cru/base/PropertyTree.h"
+
+#include <catch2/catch_test_macros.hpp>
+
+TEST_CASE("PropertyTree", "[property_tree]") {
+ using cru::PropertySubTreeRef;
+ using cru::PropertyTree;
+
+ PropertyTree tree({
+ {u"k1", u"v1"},
+ {u"k2", u"v2"},
+ {u"k3.sub", u"v3"},
+ });
+
+ REQUIRE(tree.GetValue(u"k1") == u"v1");
+ REQUIRE(tree.GetValue(u"k2") == u"v2");
+ REQUIRE(tree.GetValue(u"k3.sub") == u"v3");
+
+ PropertySubTreeRef sub_tree = tree.GetSubTreeRef(u"k3");
+ REQUIRE(sub_tree.GetValue(u"sub") == u"v3");
+
+ PropertySubTreeRef root_tree = sub_tree.GetParent();
+ REQUIRE(root_tree.GetValue(u"k1") == u"v1");
+ REQUIRE(root_tree.GetValue(u"k2") == u"v2");
+ REQUIRE(root_tree.GetValue(u"k3.sub") == u"v3");
+}