blob: ebf492f3a02c8dc9a1ea0b533de4f44e50f483cf [file] [log] [blame]
Ratan Gupta1dc91782018-04-19 16:47:12 +05301#include "snmp_conf_manager.hpp"
2
3#include "xyz/openbmc_project/Common/error.hpp"
4
5#include <gtest/gtest.h>
6#include <sdbusplus/bus.hpp>
7
8namespace phosphor
9{
10namespace network
11{
12namespace snmp
13{
14
15class TestSNMPConfManager : public testing::Test
16{
17 public:
18 sdbusplus::bus::bus bus;
19 ConfManager manager;
20 std::string confDir;
Ratan Gupta212f53e2018-04-30 17:28:05 +053021 TestSNMPConfManager() : bus(sdbusplus::bus::new_default()), manager(bus, "")
22 {
23 char tmp[] = "/tmp/snmpManager.XXXXXX";
24 std::string confDir = mkdtemp(tmp);
25 manager.dbusPersistentLocation = confDir;
26 }
Ratan Gupta1dc91782018-04-19 16:47:12 +053027
28 ~TestSNMPConfManager()
29 {
Ratan Gupta212f53e2018-04-30 17:28:05 +053030 fs::remove_all(manager.dbusPersistentLocation);
Ratan Gupta1dc91782018-04-19 16:47:12 +053031 }
32
33 void createSNMPClient(std::string ipaddress, uint16_t port)
34 {
35 manager.client(ipaddress, port);
36 }
37
38 ClientList &getSNMPClients()
39 {
40 return manager.clients;
41 }
42
43 void deleteSNMPClient(std::string ipaddress)
44 {
Ratan Gupta212f53e2018-04-30 17:28:05 +053045 auto &it = manager.clients[ipaddress];
46 it->delete_();
Ratan Gupta1dc91782018-04-19 16:47:12 +053047 }
48};
49
50// Add single SNMP client
51TEST_F(TestSNMPConfManager, AddSNMPClient)
52{
53 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
54
55 createSNMPClient("192.168.1.1", 24);
56
57 auto &clients = getSNMPClients();
58 EXPECT_EQ(1, clients.size());
59 EXPECT_EQ(true, clients.find("192.168.1.1") != clients.end());
60}
61
62// Add multiple SNMP client
63TEST_F(TestSNMPConfManager, AddMultipleSNMPClient)
64{
65 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
66
67 createSNMPClient("192.168.1.1", 24);
68 createSNMPClient("192.168.1.2", 24);
69
70 auto &clients = getSNMPClients();
71 EXPECT_EQ(2, clients.size());
72 EXPECT_EQ(true, clients.find("192.168.1.1") != clients.end());
73 EXPECT_EQ(true, clients.find("192.168.1.2") != clients.end());
74}
75
76// Delete SNMP client
77TEST_F(TestSNMPConfManager, DeleteSNMPClient)
78{
79 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
80
81 createSNMPClient("192.168.1.1", 24);
82 createSNMPClient("192.168.1.2", 24);
83
84 auto &clients = getSNMPClients();
85 EXPECT_EQ(2, clients.size());
86 deleteSNMPClient("192.168.1.1");
87 EXPECT_EQ(1, clients.size());
88 EXPECT_EQ(true, clients.find("192.168.1.2") != clients.end());
89}
90
91} // namespace snmp
92} // namespce network
93} // namespace phosphor