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