1
0
mirror of https://github.com/rwengine/openrw.git synced 2024-11-13 22:24:17 +01:00
openrw/rwengine/tests/test_Logger.cpp
Daniel Evans dfd68abd8e Add new Logger system.
- Supports multiple log recievers.
- Onscreen log needs to be re-written.
- Replaces GameWorld::logX().
2015-04-03 03:04:50 +01:00

38 lines
886 B
C++

#include <boost/test/unit_test.hpp>
#include <core/Logger.hpp>
#include <test_globals.hpp>
class CallbackReceiver : public Logger::MessageReciever
{
public:
std::function<void(const Logger::LogMessage&)> func;
CallbackReceiver(std::function<void(const Logger::LogMessage&)> func)
: func(func) { }
virtual void messageRecieved(const Logger::LogMessage& message)
{
func(message);
}
};
BOOST_AUTO_TEST_SUITE(LoggerTests)
BOOST_AUTO_TEST_CASE(test_reciever)
{
Logger log;
Logger::LogMessage lastMessage("", Logger::Error, "");
CallbackReceiver reciever([&](const Logger::LogMessage& m) { lastMessage = m; });
log.addReciever(&reciever);
log.info("Tests", "Test");
BOOST_CHECK_EQUAL( lastMessage.component, "Tests" );
BOOST_CHECK_EQUAL( lastMessage.severity, Logger::Info );
BOOST_CHECK_EQUAL( lastMessage.message, "Test" );
}
BOOST_AUTO_TEST_SUITE_END()