diff options
-rw-r--r-- | extensions/openpower-pels/additional_data.hpp | 23 | ||||
-rw-r--r-- | test/openpower-pels/additional_data_test.cpp | 16 |
2 files changed, 38 insertions, 1 deletions
diff --git a/extensions/openpower-pels/additional_data.hpp b/extensions/openpower-pels/additional_data.hpp index f133e0f..ca4a47d 100644 --- a/extensions/openpower-pels/additional_data.hpp +++ b/extensions/openpower-pels/additional_data.hpp @@ -37,7 +37,7 @@ class AdditionalData * @param[in] ad - the AdditionalData property vector with * entries of "KEY=VALUE" */ - AdditionalData(const std::vector<std::string>& ad) + explicit AdditionalData(const std::vector<std::string>& ad) { for (auto& item : ad) { @@ -101,6 +101,27 @@ class AdditionalData return j; } + /** + * @brief Returns the underlying map of data + * + * @return const std::map<std::string, std::string>& - The data + */ + const std::map<std::string, std::string>& getData() const + { + return _data; + } + + /** + * @brief Adds a key/value pair to the object + * + * @param[in] key - The key + * @param[in] value - The value + */ + void add(const std::string& key, const std::string& value) + { + _data.emplace(key, value); + } + private: /** * @brief a map of keys to values diff --git a/test/openpower-pels/additional_data_test.cpp b/test/openpower-pels/additional_data_test.cpp index f3f9824..c93fdf2 100644 --- a/test/openpower-pels/additional_data_test.cpp +++ b/test/openpower-pels/additional_data_test.cpp @@ -47,3 +47,19 @@ TEST(AdditionalDataTest, GetKeywords) ad.remove("KEY1"); EXPECT_FALSE(ad.getValue("KEY1")); } + +TEST(AdditionalDataTest, AddData) +{ + AdditionalData ad; + + ad.add("KEY1", "VALUE1"); + EXPECT_EQ(*(ad.getValue("KEY1")), "VALUE1"); + + ad.add("KEY2", "VALUE2"); + EXPECT_EQ(*(ad.getValue("KEY2")), "VALUE2"); + + std::map<std::string, std::string> expected{{"KEY1", "VALUE1"}, + {"KEY2", "VALUE2"}}; + + EXPECT_EQ(expected, ad.getData()); +} |