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