blob: a1ff46f300825f30b328ad38eb3b6368af90ebfa [file] [log] [blame]
Ed Tanous40e9b922024-09-10 13:50:16 -07001// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright OpenBMC Authors
Ed Tanous50ebd4a2023-01-19 19:03:17 -08003#include "str_utility.hpp"
4
5#include <string>
6#include <vector>
7
Ed Tanous478b7ad2024-07-15 19:11:54 -07008#include <gmock/gmock.h>
9#include <gtest/gtest.h>
Ed Tanous50ebd4a2023-01-19 19:03:17 -080010
11namespace
12{
13
14using ::testing::ElementsAre;
Ed Tanous50ebd4a2023-01-19 19:03:17 -080015
16TEST(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"));
Ed Tanousb64c6262023-02-21 10:27:14 -080022
Ed Tanous50ebd4a2023-01-19 19:03:17 -080023 vec.clear();
24 split(vec, "", '-');
Ed Tanousb64c6262023-02-21 10:27:14 -080025 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
40TEST(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"));
Ed Tanous50ebd4a2023-01-19 19:03:17 -080047}
48
Ed Tanous18f8f602023-07-18 10:07:23 -070049TEST(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
63TEST(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
Ed Tanous50ebd4a2023-01-19 19:03:17 -080074} // namespace