include
pilz_testutils
logger_mock.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2021 Pilz GmbH & Co. KG
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
#ifndef LOGGER_MOCK_H
17
#define LOGGER_MOCK_H
18
19
#include <string>
20
21
#include <log4cxx/logger.h>
22
23
#include "
pilz_testutils/mock_appender.h
"
24
25
namespace
pilz_testutils
26
{
67
class
LoggerMock
68
{
69
public
:
70
LoggerMock
(
const
std::string& logger_name =
ROSCONSOLE_ROOT_LOGGER_NAME
);
71
~LoggerMock
();
72
73
public
:
74
MockAppender
&
operator*
();
75
76
private
:
77
log4cxx::LoggerPtr
ros_root_logger_
;
78
// Note:
79
// The ROS root logger takes control over the life time management of the
80
// LoggerMock!
81
// We only keep a pointer to allow tests make use of the mocked functions of
82
// the LoggerMock.
83
MockAppender
*
mock_appender_
{
new
MockAppender
() };
84
};
85
86
inline
LoggerMock::LoggerMock
(
const
std::string& logger_name)
87
: ros_root_logger_(
log4cxx
::Logger::getLogger(logger_name))
88
{
89
ros_root_logger_
->addAppender(
mock_appender_
);
90
}
91
92
inline
LoggerMock::~LoggerMock
()
93
{
94
ros_root_logger_
->removeAppender(
mock_appender_
);
95
}
96
97
inline
MockAppender
&
LoggerMock::operator*
()
98
{
99
return
*
mock_appender_
;
100
}
101
102
}
// namespace pilz_testutils
103
104
#endif // LOGGER_MOCK_H
pilz_testutils::MockAppender
Mocked version of a log4cxx::Appender to be used by gtest.
Definition:
mock_appender.h:38
pilz_testutils::LoggerMock::mock_appender_
MockAppender * mock_appender_
Definition:
logger_mock.h:83
pilz_testutils::LoggerMock::ros_root_logger_
log4cxx::LoggerPtr ros_root_logger_
Definition:
logger_mock.h:77
ROSCONSOLE_ROOT_LOGGER_NAME
#define ROSCONSOLE_ROOT_LOGGER_NAME
pilz_testutils::LoggerMock
Class to be used in tests with logging checks.
Definition:
logger_mock.h:67
pilz_testutils::LoggerMock::~LoggerMock
~LoggerMock()
Definition:
logger_mock.h:92
pilz_testutils
Definition:
joint_state_publisher_mock.h:31
log4cxx
Definition:
mock_appender.h:91
pilz_testutils::LoggerMock::LoggerMock
LoggerMock(const std::string &logger_name=ROSCONSOLE_ROOT_LOGGER_NAME)
Definition:
logger_mock.h:86
pilz_testutils::LoggerMock::operator*
MockAppender & operator*()
Definition:
logger_mock.h:97
mock_appender.h
pilz_testutils
Author(s):
autogenerated on Sat Nov 25 2023 03:16:57