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