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