1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 #include "str_utility.hpp" 4 5 #include <string> 6 #include <vector> 7 8 #include <gmock/gmock.h> 9 #include <gtest/gtest.h> 10 11 namespace 12 { 13 14 using ::testing::ElementsAre; 15 16 TEST(Split, PositiveTests) 17 { 18 using bmcweb::split; 19 std::vector<std::string> vec; 20 split(vec, "xx-abc-xx-abb", '-'); 21 EXPECT_THAT(vec, ElementsAre("xx", "abc", "xx", "abb")); 22 23 vec.clear(); 24 split(vec, "", '-'); 25 EXPECT_THAT(vec, ElementsAre("")); 26 27 vec.clear(); 28 split(vec, "foo/", '/'); 29 EXPECT_THAT(vec, ElementsAre("foo", "")); 30 31 vec.clear(); 32 split(vec, "/bar", '/'); 33 EXPECT_THAT(vec, ElementsAre("", "bar")); 34 35 vec.clear(); 36 split(vec, "/", '/'); 37 EXPECT_THAT(vec, ElementsAre("", "")); 38 } 39 40 TEST(Split, Sensor) 41 { 42 using bmcweb::split; 43 std::vector<std::string> vec; 44 split(vec, "/xyz/openbmc_project/sensors/unit/name", '/'); 45 EXPECT_THAT(vec, ElementsAre("", "xyz", "openbmc_project", "sensors", 46 "unit", "name")); 47 } 48 49 TEST(AsciiToLower, Positive) 50 { 51 using bmcweb::asciiToLower; 52 // Noop 53 EXPECT_EQ(asciiToLower('a'), 'a'); 54 EXPECT_EQ(asciiToLower('z'), 'z'); 55 EXPECT_EQ(asciiToLower('0'), '0'); 56 EXPECT_EQ(asciiToLower('_'), '_'); 57 58 // Converted 59 EXPECT_EQ(asciiToLower('A'), 'a'); 60 EXPECT_EQ(asciiToLower('Z'), 'z'); 61 } 62 63 TEST(AsciiIEquals, Positive) 64 { 65 using bmcweb::asciiIEquals; 66 EXPECT_TRUE(asciiIEquals("FOO", "foo")); 67 EXPECT_TRUE(asciiIEquals("foo", "foo")); 68 EXPECT_TRUE(asciiIEquals("", "")); 69 EXPECT_TRUE(asciiIEquals("_", "_")); 70 71 EXPECT_FALSE(asciiIEquals("bar", "foo")); 72 } 73 74 } // namespace 75