diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-20 01:24:17 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2015-01-20 01:24:17 +0100 |
commit | 57a1ea659ae125934c541951113c0c3a38b10971 (patch) | |
tree | 8bf6f93a1c4b56cd48777b2f2f80c77466ef61ee /test/core | |
parent | 20d3e71f26ca884271ed5d372a8459394554c147 (diff) | |
parent | 533e1a93c8f636b78f5687dd9c343a81563081a1 (diff) |
Merge branch 'master' of somweyr.de:ousia
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/RegistryTest.cpp | 48 | ||||
-rw-r--r-- | test/core/ResourceLocatorTest.cpp | 69 | ||||
-rw-r--r-- | test/core/parser/StandaloneParserContext.hpp | 6 | ||||
-rw-r--r-- | test/core/resource/ResourceLocatorTest.cpp | 52 |
4 files changed, 68 insertions, 107 deletions
diff --git a/test/core/RegistryTest.cpp b/test/core/RegistryTest.cpp index 8280188..45e09d3 100644 --- a/test/core/RegistryTest.cpp +++ b/test/core/RegistryTest.cpp @@ -18,46 +18,26 @@ #include <gtest/gtest.h> -#include <core/Registry.hpp> - #include <sstream> -#include <core/common/Logger.hpp> +#include <core/resource/ResourceLocator.hpp> +#include <core/Registry.hpp> namespace ousia { -class TestResourceLocator : public ResourceLocator { -public: - ResourceLocator::Location locate( - const std::string &path, const std::string &relativeTo, - const ResourceLocator::Type type) const override - { - // trivial test implementation. - return ResourceLocator::Location(true, *this, type, path); - } - - std::unique_ptr<std::istream> stream( - const std::string &location) const override - { - // trivial test implementation. - std::unique_ptr<std::stringstream> ss(new std::stringstream()); - (*ss) << "test"; - return std::move(ss); - } -}; - TEST(Registry, locateResource) { - TestResourceLocator locator; - Logger logger; - Registry instance {logger}; - instance.registerResourceLocator(&locator); - - ResourceLocator::Location location = - instance.locateResource("path", "", ResourceLocator::Type::DOMAIN_DESC); - ASSERT_TRUE(location.found); - ASSERT_EQ(ResourceLocator::Type::DOMAIN_DESC, location.type); - ASSERT_EQ("path", location.location); + StaticResourceLocator locator; + locator.store("path", "test"); + + Registry registry; + registry.registerResourceLocator(locator); + + Resource res; + ASSERT_TRUE( + registry.locateResource(res, "path", ResourceType::DOMAIN_DESC)); + ASSERT_TRUE(res.isValid()); + ASSERT_EQ(ResourceType::DOMAIN_DESC, res.getType()); + ASSERT_EQ("path", res.getLocation()); } - } diff --git a/test/core/ResourceLocatorTest.cpp b/test/core/ResourceLocatorTest.cpp deleted file mode 100644 index ebb164d..0000000 --- a/test/core/ResourceLocatorTest.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - Ousía - Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <gtest/gtest.h> - -#include <core/ResourceLocator.hpp> - -#include <sstream> - -namespace ousia { - -class TestResourceLocator : public ResourceLocator { -public: - ResourceLocator::Location locate( - const std::string &path, const std::string &relativeTo, - const ResourceLocator::Type type) const override - { - // trivial test implementation. - return ResourceLocator::Location(true, *this, type, path); - } - - std::unique_ptr<std::istream> stream( - const std::string &location) const override - { - // trivial test implementation. - std::unique_ptr<std::stringstream> ss(new std::stringstream()); - (*ss) << "test"; - return std::move(ss); - } -}; - -TEST(ResourceLocator, locate) -{ - TestResourceLocator instance; - ResourceLocator::Location location = - instance.locate("path", "", ResourceLocator::Type::DOMAIN_DESC); - ASSERT_TRUE(location.found); - ASSERT_EQ(ResourceLocator::Type::DOMAIN_DESC, location.type); - ASSERT_EQ("path", location.location); -} - -TEST(ResourceLocator, stream) -{ - TestResourceLocator instance; - ResourceLocator::Location location = - instance.locate("path", "", ResourceLocator::Type::DOMAIN_DESC); - std::unique_ptr<std::istream> is = location.stream(); - - std::string str; - *is >> str; - - ASSERT_EQ("test", str); -} -} diff --git a/test/core/parser/StandaloneParserContext.hpp b/test/core/parser/StandaloneParserContext.hpp index aca056e..347d34f 100644 --- a/test/core/parser/StandaloneParserContext.hpp +++ b/test/core/parser/StandaloneParserContext.hpp @@ -37,15 +37,13 @@ public: ParserContext context; StandaloneParserContext() - : registry(logger), - project(new model::Project(manager)), + : project(new model::Project(manager)), context(scope, registry, logger, manager, project) { } StandaloneParserContext(Logger &externalLogger) - : registry(externalLogger), - project(new model::Project(manager)), + : project(new model::Project(manager)), context(scope, registry, externalLogger, manager, project){}; }; } diff --git a/test/core/resource/ResourceLocatorTest.cpp b/test/core/resource/ResourceLocatorTest.cpp new file mode 100644 index 0000000..d009883 --- /dev/null +++ b/test/core/resource/ResourceLocatorTest.cpp @@ -0,0 +1,52 @@ +/* + Ousía + Copyright (C) 2014, 2015 Benjamin Paaßen, Andreas Stöckel + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#include <gtest/gtest.h> + +#include <core/resource/ResourceLocator.hpp> + +namespace ousia { + +TEST(StaticResourceLocator, locate) +{ + StaticResourceLocator locator; + locator.store("path", "test"); + + Resource res; + ASSERT_TRUE(locator.locate(res, "path")); + ASSERT_TRUE(res.isValid()); + ASSERT_EQ(ResourceType::UNKNOWN, res.getType()); + ASSERT_EQ("path", res.getLocation()); +} + +TEST(StaticResourceLocator, stream) +{ + StaticResourceLocator locator; + locator.store("path", "test"); + + Resource res; + ASSERT_TRUE(locator.locate(res, "path")); + + auto is = res.stream(); + + std::string str; + *is >> str; + + ASSERT_EQ("test", str); +} +} |