Slight tweaks for CreatureException, add tests to see if what() works.

This commit is contained in:
Deukhoofd 2020-02-03 13:05:46 +01:00
parent c3b573c7da
commit 07700008f7
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
2 changed files with 18 additions and 2 deletions

View File

@ -8,9 +8,10 @@ class CreatureException : std::exception {
std::string _error;
public:
CreatureException(std::string error) : _error(error) {}
explicit CreatureException(std::string error) : _error(error) {}
const char* what() const throw() override { return _error.c_str(); }
const char* what() const noexcept override { return _error.c_str(); }
virtual ~CreatureException() = default;
};
#endif // CREATURELIB_CREATUREEXCEPTION_HPP

15
tests/ExceptionTests.cpp Normal file
View File

@ -0,0 +1,15 @@
#ifdef TESTS_BUILD
#include <cstring>
#include "../extern/catch.hpp"
#include "../src/Core/Exceptions/CreatureException.hpp"
TEST_CASE("When throwing exception, what() is readable", "[Utilities]") {
try {
throw CreatureException("foobar");
} catch (const CreatureException& e) {
INFO(e.what());
REQUIRE(strcmp(e.what(), "foobar") == 0);
}
}
#endif