diff options
Diffstat (limited to 'test/core')
| -rw-r--r-- | test/core/RegistryTest.cpp | 63 | 
1 files changed, 63 insertions, 0 deletions
diff --git a/test/core/RegistryTest.cpp b/test/core/RegistryTest.cpp new file mode 100644 index 0000000..e06011a --- /dev/null +++ b/test/core/RegistryTest.cpp @@ -0,0 +1,63 @@ +/* +    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/Registry.hpp> + +#include <sstream> + +#include <core/Logger.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); +	ASSERT_TRUE(location.found); +	ASSERT_EQ(ResourceLocator::Type::DOMAIN, location.type); +	ASSERT_EQ("path", location.location); +} + +}  | 
