aboutsummaryrefslogtreecommitdiff
path: root/test/common/PropertyTreeTest.cpp
blob: 620bc10d615678b50d9dce8f39670cfe18ee4030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "cru/common/PropertyTree.h"

#include <gtest/gtest.h>

TEST(PropertyTree, Test) {
  using cru::PropertySubTreeRef;
  using cru::PropertyTree;

  PropertyTree tree({
      {u"k1", u"v1"},
      {u"k2", u"v2"},
      {u"k3.sub", u"v3"},
  });

  ASSERT_EQ(tree.GetValue(u"k1"), u"v1");
  ASSERT_EQ(tree.GetValue(u"k2"), u"v2");
  ASSERT_EQ(tree.GetValue(u"k3.sub"), u"v3");

  PropertySubTreeRef sub_tree = tree.GetSubTreeRef(u"k3");
  ASSERT_EQ(sub_tree.GetValue(u"sub"), u"v3");

  PropertySubTreeRef root_tree = sub_tree.GetParent();
  ASSERT_EQ(root_tree.GetValue(u"k1"), u"v1");
  ASSERT_EQ(root_tree.GetValue(u"k2"), u"v2");
  ASSERT_EQ(root_tree.GetValue(u"k3.sub"), u"v3");
}