From 9249dbedc1a778cf02203a1bcb14880c9bdb0b4e Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Wed, 4 Feb 2015 22:40:40 +0100 Subject: allowed actual field descriptor references. --- test/plugins/xml/XmlParserTest.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'test/plugins') diff --git a/test/plugins/xml/XmlParserTest.cpp b/test/plugins/xml/XmlParserTest.cpp index 6619199..0512fd0 100644 --- a/test/plugins/xml/XmlParserTest.cpp +++ b/test/plugins/xml/XmlParserTest.cpp @@ -156,14 +156,25 @@ static void checkFieldDescriptor( } static void checkFieldDescriptor( - Handle desc, NodeVector children, + Handle desc, Handle parent, + NodeVector children, const std::string &name = DEFAULT_FIELD_NAME, FieldDescriptor::FieldType type = FieldDescriptor::FieldType::TREE, Handle primitiveType = nullptr, bool optional = false) { auto res = desc->resolve(RttiTypes::FieldDescriptor, name); ASSERT_EQ(1, res.size()); - checkFieldDescriptor(res[0].node, name, desc, children, type, primitiveType, + checkFieldDescriptor(res[0].node, name, parent, children, type, + primitiveType, optional); +} + +static void checkFieldDescriptor( + Handle desc, NodeVector children, + const std::string &name = DEFAULT_FIELD_NAME, + FieldDescriptor::FieldType type = FieldDescriptor::FieldType::TREE, + Handle primitiveType = nullptr, bool optional = false) +{ + checkFieldDescriptor(desc, desc, children, name, type, primitiveType, optional); } @@ -216,8 +227,8 @@ TEST(XmlParser, domainParsing) Rooted heading = checkStructuredClass("heading", "heading", headings_domain, single, nullptr, nullptr, true, false); - // which should allow text content - checkFieldDescriptor(heading, {text}); + // which should be a reference to the paragraph descriptor. + checkFieldDescriptor(heading, paragraph, {text}); // and each struct in the book domain (except for text) should have a // heading field now. checkFieldDescriptor(book, {heading}, "heading", @@ -261,9 +272,7 @@ TEST(XmlParser, domainParsing) // paragraph should have comment as child now as well. checkFieldDescriptor(paragraph, {text, comment}); // as should heading, because it references the paragraph default field. - // TODO: This does not work as of now, because in fact fields get copied, - // not referenced. Should we reference fields, though? - //checkFieldDescriptor(heading, {text, comment}); + checkFieldDescriptor(heading, paragraph, {text, comment}); } } -- cgit v1.2.3