1 #include "../utils.hpp" 2 3 #include <gtest/gtest.h> 4 5 using namespace phosphor::inventory::manager; 6 using namespace std::string_literals; 7 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 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 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 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