1 #include "config.h"
2 
3 #include "phosphor-rsyslog-config/server-conf.hpp"
4 
5 #include <sdbusplus/bus.hpp>
6 
7 #include <filesystem>
8 
9 #include "gmock/gmock.h"
10 #include <gtest/gtest.h>
11 
12 namespace phosphor
13 {
14 namespace logging
15 {
16 namespace test
17 {
18 
19 namespace fs = std::filesystem;
20 
21 char tmplt[] = "/tmp/logging_test.XXXXXX";
22 auto bus = sdbusplus::bus::new_default();
23 fs::path dir(fs::path(mkdtemp(tmplt)));
24 
25 class MockServer : public phosphor::rsyslog_config::Server
26 {
27   public:
MockServer(sdbusplus::bus_t & bus,const std::string & path,const char * filePath)28     MockServer(sdbusplus::bus_t& bus, const std::string& path,
29                const char* filePath) :
30         phosphor::rsyslog_config::Server(bus, path, filePath)
31     {}
32 
33     MOCK_METHOD0(restart, void());
34 };
35 
36 class TestRemoteLogging : public testing::Test
37 {
38   public:
TestRemoteLogging()39     TestRemoteLogging()
40     {
41         configFilePath = std::string(dir.c_str()) + "/server.conf";
42         config = new MockServer(bus, BUSPATH_REMOTE_LOGGING_CONFIG,
43                                 configFilePath.c_str());
44     }
45 
~TestRemoteLogging()46     ~TestRemoteLogging()
47     {
48         delete config;
49     }
50 
TearDownTestCase()51     static void TearDownTestCase()
52     {
53         fs::remove_all(dir);
54     }
55 
56     MockServer* config;
57     std::string configFilePath;
58 };
59 
60 } // namespace test
61 } // namespace logging
62 } // namespace phosphor
63