1 #include "utils/stl_utils.hpp" 2 3 #include <string> 4 #include <vector> 5 6 #include <gmock/gmock.h> // IWYU pragma: keep 7 #include <gtest/gtest.h> // IWYU pragma: keep 8 9 // IWYU pragma: no_include <gtest/gtest-message.h> 10 // IWYU pragma: no_include <gtest/gtest-test-part.h> 11 // IWYU pragma: no_include "gtest/gtest_pred_impl.h" 12 13 namespace redfish::stl_utils 14 { 15 namespace 16 { 17 using ::testing::ElementsAre; 18 19 TEST(FirstDuplicate, ReturnsIteratorToFirstDuplicate) 20 { 21 std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"}; 22 auto iter = firstDuplicate(strVec.begin(), strVec.end()); 23 ASSERT_NE(iter, strVec.end()); 24 EXPECT_EQ(*iter, "s3"); 25 } 26 27 TEST(RemoveDuplicates, AllDuplicatesAreRempvedInplace) 28 { 29 std::vector<std::string> strVec = {"s1", "s4", "s1", "s2", "", "s3", "s3"}; 30 removeDuplicate(strVec); 31 32 EXPECT_THAT(strVec, ElementsAre("s1", "s4", "s2", "", "s3")); 33 } 34 } // namespace 35 } // namespace redfish::stl_utils 36