diff options
Diffstat (limited to 'test/formats')
-rw-r--r-- | test/formats/osml/OsmlParserTest.cpp | 41 | ||||
-rw-r--r-- | test/formats/osxml/OsxmlParserTest.cpp | 26 |
2 files changed, 58 insertions, 9 deletions
diff --git a/test/formats/osml/OsmlParserTest.cpp b/test/formats/osml/OsmlParserTest.cpp index 3472e5f..5127b32 100644 --- a/test/formats/osml/OsmlParserTest.cpp +++ b/test/formats/osml/OsmlParserTest.cpp @@ -158,5 +158,46 @@ TEST(OsmlParser, structureInheritance) ASSERT_TRUE(node != nullptr); ASSERT_TRUE(node->isa(&RttiTypes::Domain)); } + +TEST(OsmlParser, structWithNoField) +{ + OsmlStandaloneEnvironment env(logger); + logger.reset(); + + Rooted<Node> node = env.parse("struct_with_no_field.osml", "", "", + RttiSet{&RttiTypes::Node}); + ASSERT_FALSE(logger.hasError()); + + ASSERT_TRUE(node != nullptr); + ASSERT_TRUE(node->isa(&RttiTypes::Document)); +} + +TEST(OsmlParser, invalidExplicitFields) +{ + OsmlStandaloneEnvironment env(logger); + logger.reset(); + + ASSERT_FALSE(logger.hasError()); + Rooted<Node> node = env.parse("invalid_explicit_fields.osml", "", "", + RttiSet{&RttiTypes::Node}); + ASSERT_TRUE(logger.hasError()); + + ASSERT_TRUE(node != nullptr); + ASSERT_TRUE(node->isa(&RttiTypes::Document)); +} + +TEST(OsmlParser, explicitFields) +{ + OsmlStandaloneEnvironment env(logger); + logger.reset(); + + Rooted<Node> node = env.parse("explicit_fields.osml", "", "", + RttiSet{&RttiTypes::Node}); + ASSERT_FALSE(logger.hasError()); + + ASSERT_TRUE(node != nullptr); + ASSERT_TRUE(node->isa(&RttiTypes::Document)); +} + } diff --git a/test/formats/osxml/OsxmlParserTest.cpp b/test/formats/osxml/OsxmlParserTest.cpp index 5cc0669..3bf4a47 100644 --- a/test/formats/osxml/OsxmlParserTest.cpp +++ b/test/formats/osxml/OsxmlParserTest.cpp @@ -66,15 +66,6 @@ TEST(OsxmlParser, mismatchedTag) ASSERT_TRUE(logger.hasError()); } -TEST(OsxmlParser, generic) -{ - XmlStandaloneEnvironment env(logger); - env.parse("generic.osxml", "", "", RttiSet{&RttiTypes::Node}); -#ifdef MANAGER_GRAPHVIZ_EXPORT - env.manager.exportGraphviz("xmlDocument.dot"); -#endif -} - static void checkAttributes(Handle<StructType> expected, Handle<Descriptor> desc) { @@ -347,6 +338,7 @@ static void checkText(Handle<Node> p, Handle<Node> expectedParent, TEST(OsxmlParser, documentParsing) { + logger.reset(); XmlStandaloneEnvironment env(logger); Rooted<Node> book_document_node = env.parse("simple_book.osxml", "", "", RttiSet{&RttiTypes::Document}); @@ -391,5 +383,21 @@ TEST(OsxmlParser, documentParsing) } } } + + +TEST(OsxmlParser, complexDocumentParsing) +{ + logger.reset(); + XmlStandaloneEnvironment env(logger); + Rooted<Node> book_document_node = + env.parse("complex_book.osxml", "", "", RttiSet{&RttiTypes::Document}); + ASSERT_FALSE(logger.hasError()); + ASSERT_FALSE(book_document_node == nullptr); + ASSERT_TRUE(book_document_node->isa(&RttiTypes::Document)); + Rooted<Document> doc = book_document_node.cast<Document>(); + ASSERT_TRUE(doc->validate(logger)); + ASSERT_FALSE(logger.hasError()); +} + } |