parent
03dc713649
commit
ad01f90bea
@ -0,0 +1,58 @@
|
||||
#include "mock_logger.hpp"
|
||||
#include "webfused/log/logger.h"
|
||||
#include "webfused/log/log.h"
|
||||
|
||||
namespace webfused_test
|
||||
{
|
||||
|
||||
MockLogger::MockLogger(bool omit_init)
|
||||
: close_on_destruct(!omit_init)
|
||||
{
|
||||
if (!omit_init)
|
||||
{
|
||||
wfd_logger_init(
|
||||
WFD_LOGLEVEL_ALL,
|
||||
&wfd_MockLogger_log,
|
||||
&wfd_MockLogger_onclose,
|
||||
getUserData());
|
||||
}
|
||||
}
|
||||
|
||||
MockLogger::~MockLogger()
|
||||
{
|
||||
if (close_on_destruct)
|
||||
{
|
||||
wfd_logger_close();
|
||||
}
|
||||
}
|
||||
|
||||
void * MockLogger::getUserData()
|
||||
{
|
||||
ILogger * logger = this;
|
||||
return reinterpret_cast<void*>(logger);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
using webfused_test::ILogger;
|
||||
|
||||
void wfd_MockLogger_log(
|
||||
void * user_data,
|
||||
int level,
|
||||
char const * format,
|
||||
va_list args)
|
||||
{
|
||||
ILogger * logger = reinterpret_cast<ILogger*>(user_data);
|
||||
logger->log(level, format, args);
|
||||
}
|
||||
|
||||
void wfd_MockLogger_onclose(
|
||||
void * user_data)
|
||||
{
|
||||
ILogger * logger = reinterpret_cast<ILogger*>(user_data);
|
||||
logger->onclose();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
#ifndef WFD_MOCK_LOGGER_HPP
|
||||
#define WFD_MOCK_LOGGER_HPP
|
||||
|
||||
#include <gmock/gmock.h>
|
||||
#include <cstdarg>
|
||||
|
||||
namespace webfused_test
|
||||
{
|
||||
|
||||
class ILogger
|
||||
{
|
||||
public:
|
||||
virtual ~ILogger() = default;
|
||||
virtual void log(int level, char const * format, va_list args) = 0;
|
||||
virtual void onclose() = 0;
|
||||
};
|
||||
|
||||
class MockLogger: public ILogger
|
||||
{
|
||||
public:
|
||||
explicit MockLogger(bool omit_init = false);
|
||||
~MockLogger() override;
|
||||
MOCK_METHOD3(log, void(int level, char const * format, va_list args));
|
||||
MOCK_METHOD0(onclose, void(void));
|
||||
|
||||
void * getUserData();
|
||||
private:
|
||||
bool close_on_destruct;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
extern void wfd_MockLogger_log(
|
||||
void * user_data,
|
||||
int level,
|
||||
char const * format,
|
||||
va_list args);
|
||||
|
||||
extern void wfd_MockLogger_onclose(
|
||||
void * user_data);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
Loading…
Reference in new issue