blob: 1b0564f03321c299ccfa383557af089449bdde71 [file] [log] [blame]
Ed Tanous40e9b922024-09-10 13:50:16 -07001// SPDX-License-Identifier: Apache-2.0
2// SPDX-FileCopyrightText: Copyright OpenBMC Authors
Nan Zhou2f07bde2022-06-21 17:46:31 +00003#include "dbus_utility.hpp"
Manojkiran Eda17a897d2020-09-12 15:31:58 +05304
Nan Zhou2f07bde2022-06-21 17:46:31 +00005#include <string>
6
Ed Tanous478b7ad2024-07-15 19:11:54 -07007#include <gtest/gtest.h>
Manojkiran Eda17a897d2020-09-12 15:31:58 +05308
Nan Zhou5b28cdf2022-06-21 17:46:26 +00009namespace dbus::utility
10{
11namespace
12{
13
Nan Zhou623e5332022-06-21 17:46:37 +000014TEST(GetNthStringFromPath, ParsingSucceedsAndReturnsNthArg)
Manojkiran Eda17a897d2020-09-12 15:31:58 +053015{
16 std::string path("/0th/1st/2nd/3rd");
17 std::string result;
Nan Zhou5b28cdf2022-06-21 17:46:26 +000018 EXPECT_TRUE(getNthStringFromPath(path, 0, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053019 EXPECT_EQ(result, "0th");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000020 EXPECT_TRUE(getNthStringFromPath(path, 1, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053021 EXPECT_EQ(result, "1st");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000022 EXPECT_TRUE(getNthStringFromPath(path, 2, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053023 EXPECT_EQ(result, "2nd");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000024 EXPECT_TRUE(getNthStringFromPath(path, 3, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053025 EXPECT_EQ(result, "3rd");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000026 EXPECT_FALSE(getNthStringFromPath(path, 4, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053027
Nan Zhou623e5332022-06-21 17:46:37 +000028 path = "////0th///1st//\2nd///3rd?/";
Nan Zhou5b28cdf2022-06-21 17:46:26 +000029 EXPECT_TRUE(getNthStringFromPath(path, 0, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053030 EXPECT_EQ(result, "0th");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000031 EXPECT_TRUE(getNthStringFromPath(path, 1, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053032 EXPECT_EQ(result, "1st");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000033 EXPECT_TRUE(getNthStringFromPath(path, 2, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053034 EXPECT_EQ(result, "\2nd");
Nan Zhou5b28cdf2022-06-21 17:46:26 +000035 EXPECT_TRUE(getNthStringFromPath(path, 3, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053036 EXPECT_EQ(result, "3rd?");
Nan Zhou623e5332022-06-21 17:46:37 +000037}
38
39TEST(GetNthStringFromPath, InvalidIndexReturnsFalse)
40{
41 std::string path("////0th///1st//\2nd///3rd?/");
42 std::string result;
Nan Zhou5b28cdf2022-06-21 17:46:26 +000043 EXPECT_FALSE(getNthStringFromPath(path, -1, result));
Manojkiran Eda17a897d2020-09-12 15:31:58 +053044}
Nan Zhou5b28cdf2022-06-21 17:46:26 +000045} // namespace
Patrick Williams89492a12023-05-10 07:51:34 -050046} // namespace dbus::utility