xref: /openbmc/bmcweb/test/include/str_utility_test.cpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
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