summaryrefslogtreecommitdiff
path: root/test/core
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-09 01:08:56 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-09 01:08:56 +0100
commitb31e6b5b147218f65b40668fb764caa90334d453 (patch)
treecfa978b77318321ee698893de046480ecb7c95c2 /test/core
parentb6197efcf5b97ddcaae99425748b2f2e74bde3c3 (diff)
Implemented new resolve function
Diffstat (limited to 'test/core')
-rw-r--r--test/core/model/NodeTest.cpp42
1 files changed, 22 insertions, 20 deletions
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 <core/model/Node.hpp>
namespace ousia {
-namespace dom {
class TestNode : public Node {
private:
std::vector<Owned<Node>> children;
protected:
- void doResolve(std::vector<Rooted<Managed>> &res,
- const std::vector<std::string> &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<ousia::TestNode> TestNode =
+ RttiBuilder("TestNode").parent(RttiTypes::Node).composedOf(&TestNode);
+}
+
TEST(Node, isRoot)
{
Manager mgr;
@@ -72,19 +72,21 @@ TEST(Node, simpleResolve)
Rooted<TestNode> child1 = root->addChild(new TestNode(mgr, "child1"));
Rooted<TestNode> child11 = child1->addChild(new TestNode(mgr, "child11"));
- std::vector<Rooted<Managed>> res;
- res = root->resolve(std::vector<std::string>{"root", "child1", "child11"});
- ASSERT_EQ(1, res.size());
- ASSERT_TRUE(child11 == *(res.begin()));
-
- res = root->resolve(std::vector<std::string>{"child1", "child11"});
- ASSERT_EQ(1, res.size());
- ASSERT_TRUE(child11 == *(res.begin()));
-
- res = root->resolve(std::vector<std::string>{"child11"});
- ASSERT_EQ(1, res.size());
- ASSERT_TRUE(child11 == *(res.begin()));
+ std::vector<ResolutionResult> res;
+ res = root->resolve(std::vector<std::string>{"root", "child1", "child11"},
+ RttiTypes::TestNode);
+ ASSERT_EQ(1U, res.size());
+ ASSERT_TRUE(child11 == res[0].node);
+
+ res = root->resolve(std::vector<std::string>{"child1", "child11"},
+ RttiTypes::TestNode);
+ ASSERT_EQ(1U, res.size());
+ ASSERT_TRUE(child11 == res[0].node);
+
+ res =
+ root->resolve(std::vector<std::string>{"child11"}, RttiTypes::TestNode);
+ ASSERT_EQ(1U, res.size());
+ ASSERT_TRUE(child11 == res[0].node);
}
}
-}