xref: /openbmc/phosphor-logging/test/openpower-pels/additional_data_test.cpp (revision 40fb54935ce7367636a7156039396ee91cc4d5e2)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright 2019 IBM Corporation
3 
4 #include "extensions/openpower-pels/additional_data.hpp"
5 
6 #include <gtest/gtest.h>
7 
8 using namespace openpower::pels;
9 
TEST(AdditionalDataTest,GetKeywords)10 TEST(AdditionalDataTest, GetKeywords)
11 {
12     std::map<std::string, std::string> data{
13         {"KEY1", "VALUE1"}, {"KEY2", "VALUE2"}, {"KEY3", ""}};
14     AdditionalData ad{data};
15 
16     EXPECT_TRUE(ad.getValue("KEY1"));
17     EXPECT_EQ(*(ad.getValue("KEY1")), "VALUE1");
18 
19     EXPECT_TRUE(ad.getValue("KEY2"));
20     EXPECT_EQ(*(ad.getValue("KEY2")), "VALUE2");
21 
22     EXPECT_FALSE(ad.getValue("x"));
23 
24     auto value3 = ad.getValue("KEY3");
25     EXPECT_TRUE(value3);
26     EXPECT_TRUE((*value3).empty());
27 
28     EXPECT_FALSE(ad.getValue("HELLOWORLD"));
29     EXPECT_FALSE(ad.getValue("VALUE5"));
30 
31     auto json = ad.toJSON();
32     std::string expected = R"({"KEY1":"VALUE1","KEY2":"VALUE2","KEY3":""})";
33     EXPECT_EQ(json.dump(), expected);
34 
35     ad.remove("KEY1");
36     EXPECT_FALSE(ad.getValue("KEY1"));
37 }
38 
TEST(AdditionalDataTest,AddData)39 TEST(AdditionalDataTest, AddData)
40 {
41     AdditionalData ad;
42 
43     ad.add("KEY1", "VALUE1");
44     EXPECT_EQ(*(ad.getValue("KEY1")), "VALUE1");
45 
46     ad.add("KEY2", "VALUE2");
47     EXPECT_EQ(*(ad.getValue("KEY2")), "VALUE2");
48 
49     std::map<std::string, std::string> expected{{"KEY1", "VALUE1"},
50                                                 {"KEY2", "VALUE2"}};
51 
52     EXPECT_EQ(expected, ad.getData());
53 }
54