summaryrefslogtreecommitdiff
path: root/test/redfish-core/include/utils/stl_utils_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/redfish-core/include/utils/stl_utils_test.cpp')
-rw-r--r--test/redfish-core/include/utils/stl_utils_test.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/redfish-core/include/utils/stl_utils_test.cpp b/test/redfish-core/include/utils/stl_utils_test.cpp
new file mode 100644
index 0000000000..f1febd088d
--- /dev/null
+++ b/test/redfish-core/include/utils/stl_utils_test.cpp
@@ -0,0 +1,34 @@
+#include "utils/stl_utils.hpp"
+
+#include <string>
+
+#include <gmock/gmock.h> // IWYU pragma: keep
+#include <gtest/gtest.h> // IWYU pragma: keep
+
+// IWYU pragma: no_include <gtest/gtest-message.h>
+// IWYU pragma: no_include <gtest/gtest-test-part.h>
+// IWYU pragma: no_include "gtest/gtest_pred_impl.h"
+
+namespace redfish::stl_utils
+{
+namespace
+{
+using ::testing::ElementsAre;
+
+TEST(FirstDuplicate, ReturnsIteratorToFirstDuplicate)
+{
+ std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"};
+ auto iter = firstDuplicate(strVec.begin(), strVec.end());
+ ASSERT_NE(iter, strVec.end());
+ EXPECT_EQ(*iter, "s3");
+}
+
+TEST(RemoveDuplicates, AllDuplicatesAreRempvedInplace)
+{
+ std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"};
+ removeDuplicate(strVec);
+
+ EXPECT_THAT(strVec, ElementsAre("s1", "s4", "s2", "", "s3"));
+}
+} // namespace
+} // namespace redfish::stl_utils