diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/core/parser/ParserScopeTest.cpp | 6 | ||||
-rw-r--r-- | test/formats/osml/OsmlParserTest.cpp | 41 |
2 files changed, 45 insertions, 2 deletions
diff --git a/test/core/parser/ParserScopeTest.cpp b/test/core/parser/ParserScopeTest.cpp index 7f89f2c..2ead924 100644 --- a/test/core/parser/ParserScopeTest.cpp +++ b/test/core/parser/ParserScopeTest.cpp @@ -18,6 +18,7 @@ #include <gtest/gtest.h> +#include <core/common/Logger.hpp> #include <core/managed/Manager.hpp> #include <core/model/Node.hpp> #include <core/parser/ParserScope.hpp> @@ -26,6 +27,7 @@ namespace ousia { TEST(ParserScope, flags) { + Logger logger; Manager mgr; ParserScope scope; @@ -42,9 +44,9 @@ TEST(ParserScope, flags) ASSERT_TRUE(scope.getFlag(ParserFlag::POST_HEAD)); scope.setFlag(ParserFlag::POST_HEAD, false); ASSERT_FALSE(scope.getFlag(ParserFlag::POST_HEAD)); - scope.pop(); + scope.pop(logger); ASSERT_TRUE(scope.getFlag(ParserFlag::POST_HEAD)); - scope.pop(); + scope.pop(logger); ASSERT_FALSE(scope.getFlag(ParserFlag::POST_HEAD)); scope.setFlag(ParserFlag::POST_HEAD, true); ASSERT_TRUE(scope.getFlag(ParserFlag::POST_HEAD)); 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)); +} + } |