From 84f0004cdf45f6fbad6461676897aa27f03cbb93 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Tue, 27 Jan 2015 01:39:19 +0100 Subject: Removed dependency between "Project" model class and parser/resources. This reduces coupling and was stupid beforehand. --- test/core/StandaloneEnvironment.hpp | 17 +++++++++++++---- test/plugins/xml/XmlParserTest.cpp | 6 ++---- 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'test') diff --git a/test/core/StandaloneEnvironment.hpp b/test/core/StandaloneEnvironment.hpp index 23efbe0..eaaa9bf 100644 --- a/test/core/StandaloneEnvironment.hpp +++ b/test/core/StandaloneEnvironment.hpp @@ -26,6 +26,7 @@ #include #include #include +#include #include namespace ousia { @@ -34,23 +35,31 @@ struct StandaloneEnvironment { ConcreteLogger &logger; Manager manager; Registry registry; - Rooted project; + ResourceManager resourceManager; ParserScope scope; + Rooted project; ParserContext context; StandaloneEnvironment(ConcreteLogger &logger) - : logger(logger), project(new Project(manager, registry)), - context(project, scope, logger) + : logger(logger), project(new Project(manager)), + context(registry, resourceManager, scope, project, logger) { logger.reset(); logger.setSourceContextCallback( - project->getSourceContextCallback()); + resourceManager.getSourceContextCallback()); } ~StandaloneEnvironment() { logger.setSourceContextCallback(NullSourceContextCallback); } + + Rooted parse(const std::string &path, + const std::string mimetype, const std::string rel, + const RttiSet &supportedTypes) + { + return context.link(path, mimetype, rel, supportedTypes); + } }; } diff --git a/test/plugins/xml/XmlParserTest.cpp b/test/plugins/xml/XmlParserTest.cpp index 7ca191e..0f00c86 100644 --- a/test/plugins/xml/XmlParserTest.cpp +++ b/test/plugins/xml/XmlParserTest.cpp @@ -58,16 +58,14 @@ static TerminalLogger logger(std::cerr, true); TEST(XmlParser, mismatchedTag) { XmlStandaloneEnvironment env(logger); - env.project->parse("mismatchedTag.oxm", "", "", - RttiSet{&RttiTypes::Document}, logger); + env.parse("mismatchedTag.oxm", "", "", RttiSet{&RttiTypes::Document}); ASSERT_TRUE(logger.hasError()); } TEST(XmlParser, generic) { XmlStandaloneEnvironment env(logger); - env.project->parse("generic.oxm", "", "", RttiSet{&RttiTypes::Document}, - logger); + env.parse("generic.oxm", "", "", RttiSet{&RttiTypes::Document}); #ifdef MANAGER_GRAPHVIZ_EXPORT env.manager.exportGraphviz("xmlDocument.dot"); #endif -- cgit v1.2.3