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
TEST(Split,PositiveTests)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
TEST(Split,Sensor)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
TEST(AsciiToLower,Positive)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
TEST(AsciiIEquals,Positive)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