1 #include "str_utility.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 // IWYU pragma: no_include <gmock/gmock-matchers.h> 13 14 namespace 15 { 16 17 using ::testing::ElementsAre; 18 19 TEST(Split, PositiveTests) 20 { 21 using bmcweb::split; 22 std::vector<std::string> vec; 23 split(vec, "xx-abc-xx-abb", '-'); 24 EXPECT_THAT(vec, ElementsAre("xx", "abc", "xx", "abb")); 25 26 vec.clear(); 27 split(vec, "", '-'); 28 EXPECT_THAT(vec, ElementsAre("")); 29 30 vec.clear(); 31 split(vec, "foo/", '/'); 32 EXPECT_THAT(vec, ElementsAre("foo", "")); 33 34 vec.clear(); 35 split(vec, "/bar", '/'); 36 EXPECT_THAT(vec, ElementsAre("", "bar")); 37 38 vec.clear(); 39 split(vec, "/", '/'); 40 EXPECT_THAT(vec, ElementsAre("", "")); 41 } 42 43 TEST(Split, Sensor) 44 { 45 using bmcweb::split; 46 std::vector<std::string> vec; 47 split(vec, "/xyz/openbmc_project/sensors/unit/name", '/'); 48 EXPECT_THAT(vec, ElementsAre("", "xyz", "openbmc_project", "sensors", 49 "unit", "name")); 50 } 51 52 } // namespace 53