1 #include "../utils.hpp"
2
3 #include <gtest/gtest.h>
4
5 using namespace phosphor::inventory::manager;
6 using namespace std::string_literals;
7
TEST(UtilsTest,TestVariantVisitor)8 TEST(UtilsTest, TestVariantVisitor)
9 {
10 std::variant<int, std::string> ib1(100);
11 auto converted1 = convertVariant<std::variant<int>>(ib1);
12 EXPECT_TRUE(std::get<int>(converted1) == 100);
13
14 std::variant<int, std::string> ib2(100);
15 EXPECT_THROW(convertVariant<std::variant<std::string>>(ib2),
16 std::runtime_error);
17 }
18
TEST(UtilsTest,TestCompareFirst)19 TEST(UtilsTest, TestCompareFirst)
20 {
21 auto c = compareFirst(std::less<int>());
22 auto p1 = std::make_pair(1, 2);
23 auto p2 = std::make_pair(3, 4);
24
25 EXPECT_TRUE(c(p1, p2));
26 EXPECT_TRUE(c(1, p2));
27 EXPECT_TRUE(c(p1, 2));
28 EXPECT_FALSE(c(p2, p1));
29 EXPECT_FALSE(c(p2, 1));
30 EXPECT_FALSE(c(2, p1));
31
32 auto p3 = std::make_pair(1, 100);
33 auto p4 = std::make_pair(1, 200);
34
35 EXPECT_FALSE(c(p3, p4));
36 EXPECT_FALSE(c(1, p4));
37 EXPECT_TRUE(c(p3, 2));
38 EXPECT_FALSE(c(p4, p3));
39 EXPECT_FALSE(c(p4, 1));
40 EXPECT_FALSE(c(2, p3));
41 }
42
TEST(UtilsTest,TestRelPathComparePrefix)43 TEST(UtilsTest, TestRelPathComparePrefix)
44 {
45 auto s1 = "prefixfoo"s;
46 auto s2 = "prefixbar"s;
47 RelPathCompare comp("prefix");
48
49 EXPECT_TRUE(comp(s2, s1));
50 EXPECT_FALSE(comp(s1, s2));
51
52 auto s3 = "bar"s;
53 auto s4 = "foo"s;
54
55 EXPECT_FALSE(comp(s4, s3));
56 EXPECT_TRUE(comp(s3, s4));
57
58 auto s5 = "prefixbar"s;
59 auto s6 = "foo"s;
60
61 EXPECT_FALSE(comp(s6, s5));
62 EXPECT_TRUE(comp(s5, s6));
63
64 auto s7 = "bar"s;
65 auto s8 = "prefixfoo"s;
66
67 EXPECT_FALSE(comp(s8, s7));
68 EXPECT_TRUE(comp(s7, s8));
69 }
70
TEST(UtilsTest,TestRelPathCompareNoPrefix)71 TEST(UtilsTest, TestRelPathCompareNoPrefix)
72 {
73 auto s1 = "prefixfoo"s;
74 auto s2 = "prefixbar"s;
75 RelPathCompare comp("");
76
77 EXPECT_TRUE(comp(s2, s1));
78 EXPECT_FALSE(comp(s1, s2));
79
80 auto s3 = "bar"s;
81 auto s4 = "foo"s;
82
83 EXPECT_FALSE(comp(s4, s3));
84 EXPECT_TRUE(comp(s3, s4));
85
86 auto s5 = "prefixbar"s;
87 auto s6 = "foo"s;
88
89 EXPECT_TRUE(comp(s6, s5));
90 EXPECT_FALSE(comp(s5, s6));
91
92 auto s7 = "bar"s;
93 auto s8 = "prefixfoo"s;
94
95 EXPECT_FALSE(comp(s8, s7));
96 EXPECT_TRUE(comp(s7, s8));
97 }
98