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 
24 
25 namespace pilz_testutils
26 {
68 {
69 public:
70  LoggerMock(const std::string& logger_name = ROSCONSOLE_ROOT_LOGGER_NAME);
71  ~LoggerMock();
72 
73 public:
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.
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 
93 {
94  ros_root_logger_->removeAppender(mock_appender_);
95 }
96 
98 {
99  return *mock_appender_;
100 }
101 
102 } // namespace pilz_testutils
103 
104 #endif // LOGGER_MOCK_H
MockAppender & operator*()
Definition: logger_mock.h:97
Mocked version of a log4cxx::Appender to be used by gtest.
Definition: mock_appender.h:38
log4cxx::LoggerPtr ros_root_logger_
Definition: logger_mock.h:77
#define ROSCONSOLE_ROOT_LOGGER_NAME
Class to be used in tests with logging checks.
Definition: logger_mock.h:67
LoggerMock(const std::string &logger_name=ROSCONSOLE_ROOT_LOGGER_NAME)
Definition: logger_mock.h:86
MockAppender * mock_appender_
Definition: logger_mock.h:83


pilz_testutils
Author(s):
autogenerated on Mon Feb 28 2022 23:13:41