xref: /openbmc/bmcweb/test/include/dbus_utility_test.cpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #include "dbus_utility.hpp"
4 
5 #include <string>
6 
7 #include <gtest/gtest.h>
8 
9 namespace dbus::utility
10 {
11 namespace
12 {
13 
TEST(GetNthStringFromPath,ParsingSucceedsAndReturnsNthArg)14 TEST(GetNthStringFromPath, ParsingSucceedsAndReturnsNthArg)
15 {
16     std::string path("/0th/1st/2nd/3rd");
17     std::string result;
18     EXPECT_TRUE(getNthStringFromPath(path, 0, result));
19     EXPECT_EQ(result, "0th");
20     EXPECT_TRUE(getNthStringFromPath(path, 1, result));
21     EXPECT_EQ(result, "1st");
22     EXPECT_TRUE(getNthStringFromPath(path, 2, result));
23     EXPECT_EQ(result, "2nd");
24     EXPECT_TRUE(getNthStringFromPath(path, 3, result));
25     EXPECT_EQ(result, "3rd");
26     EXPECT_FALSE(getNthStringFromPath(path, 4, result));
27 
28     path = "////0th///1st//\2nd///3rd?/";
29     EXPECT_TRUE(getNthStringFromPath(path, 0, result));
30     EXPECT_EQ(result, "0th");
31     EXPECT_TRUE(getNthStringFromPath(path, 1, result));
32     EXPECT_EQ(result, "1st");
33     EXPECT_TRUE(getNthStringFromPath(path, 2, result));
34     EXPECT_EQ(result, "\2nd");
35     EXPECT_TRUE(getNthStringFromPath(path, 3, result));
36     EXPECT_EQ(result, "3rd?");
37 }
38 
TEST(GetNthStringFromPath,InvalidIndexReturnsFalse)39 TEST(GetNthStringFromPath, InvalidIndexReturnsFalse)
40 {
41     std::string path("////0th///1st//\2nd///3rd?/");
42     std::string result;
43     EXPECT_FALSE(getNthStringFromPath(path, -1, result));
44 }
45 } // namespace
46 } // namespace dbus::utility
47