blob: cb79d6614996eb8a058c74c695b56cef56cc3c97 [file] [log] [blame]
Alexander Hansen40fb5492025-10-28 17:56:12 +01001// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright 2019 IBM Corporation
3
Matt Spinler15ee6ae2019-07-08 16:50:06 -05004#include "extensions/openpower-pels/additional_data.hpp"
5
6#include <gtest/gtest.h>
7
8using namespace openpower::pels;
9
10TEST(AdditionalDataTest, GetKeywords)
11{
Patrick Williamse5940632024-11-22 20:47:58 -050012 std::map<std::string, std::string> data{
13 {"KEY1", "VALUE1"}, {"KEY2", "VALUE2"}, {"KEY3", ""}};
Matt Spinler15ee6ae2019-07-08 16:50:06 -050014 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"));
Matt Spinlerafa857c2019-10-24 13:03:46 -050030
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"));
Matt Spinler15ee6ae2019-07-08 16:50:06 -050037}
Matt Spinler7ae2fa62019-12-18 13:45:05 -060038
39TEST(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}