From b31e6b5b147218f65b40668fb764caa90334d453 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Fri, 9 Jan 2015 01:08:56 +0100 Subject: Implemented new resolve function --- test/core/model/NodeTest.cpp | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) (limited to 'test/core') diff --git a/test/core/model/NodeTest.cpp b/test/core/model/NodeTest.cpp index 1c58e2c..334a311 100644 --- a/test/core/model/NodeTest.cpp +++ b/test/core/model/NodeTest.cpp @@ -22,20 +22,15 @@ #include namespace ousia { -namespace dom { class TestNode : public Node { private: std::vector> children; protected: - void doResolve(std::vector> &res, - const std::vector &path, Filter filter, - void *filterData, unsigned idx, VisitorSet &visited) override + void continueResolve(ResolutionState &state) override { - for (auto &n : children) { - n->resolve(res, path, filter, filterData, idx, visited, nullptr); - } + continueResolveComposita(children, state); } public: @@ -49,6 +44,11 @@ public: } }; +namespace RttiTypes { +const Rtti TestNode = + RttiBuilder("TestNode").parent(RttiTypes::Node).composedOf(&TestNode); +} + TEST(Node, isRoot) { Manager mgr; @@ -72,19 +72,21 @@ TEST(Node, simpleResolve) Rooted child1 = root->addChild(new TestNode(mgr, "child1")); Rooted child11 = child1->addChild(new TestNode(mgr, "child11")); - std::vector> res; - res = root->resolve(std::vector{"root", "child1", "child11"}); - ASSERT_EQ(1, res.size()); - ASSERT_TRUE(child11 == *(res.begin())); - - res = root->resolve(std::vector{"child1", "child11"}); - ASSERT_EQ(1, res.size()); - ASSERT_TRUE(child11 == *(res.begin())); - - res = root->resolve(std::vector{"child11"}); - ASSERT_EQ(1, res.size()); - ASSERT_TRUE(child11 == *(res.begin())); + std::vector res; + res = root->resolve(std::vector{"root", "child1", "child11"}, + RttiTypes::TestNode); + ASSERT_EQ(1U, res.size()); + ASSERT_TRUE(child11 == res[0].node); + + res = root->resolve(std::vector{"child1", "child11"}, + RttiTypes::TestNode); + ASSERT_EQ(1U, res.size()); + ASSERT_TRUE(child11 == res[0].node); + + res = + root->resolve(std::vector{"child11"}, RttiTypes::TestNode); + ASSERT_EQ(1U, res.size()); + ASSERT_TRUE(child11 == res[0].node); } } -} -- cgit v1.2.3