#include "../utils.hpp" #include using namespace sdbusplus::message::variant_ns; using namespace phosphor::inventory::manager; using namespace std::string_literals; TEST(UtilsTest, TestVariantVisitor) { variant ib1(100); auto converted1 = convertVariant>(ib1); EXPECT_TRUE(get(converted1) == 100); variant ib2(100); EXPECT_THROW(convertVariant>(ib2), std::runtime_error); } TEST(UtilsTest, TestCompareFirst) { auto c = compareFirst(std::less()); auto p1 = std::make_pair(1, 2); auto p2 = std::make_pair(3, 4); EXPECT_TRUE(c(p1, p2)); EXPECT_TRUE(c(1, p2)); EXPECT_TRUE(c(p1, 2)); EXPECT_FALSE(c(p2, p1)); EXPECT_FALSE(c(p2, 1)); EXPECT_FALSE(c(2, p1)); auto p3 = std::make_pair(1, 100); auto p4 = std::make_pair(1, 200); EXPECT_FALSE(c(p3, p4)); EXPECT_FALSE(c(1, p4)); EXPECT_TRUE(c(p3, 2)); EXPECT_FALSE(c(p4, p3)); EXPECT_FALSE(c(p4, 1)); EXPECT_FALSE(c(2, p3)); } TEST(UtilsTest, TestRelPathComparePrefix) { auto s1 = "prefixfoo"s; auto s2 = "prefixbar"s; RelPathCompare comp("prefix"); EXPECT_TRUE(comp(s2, s1)); EXPECT_FALSE(comp(s1, s2)); auto s3 = "bar"s; auto s4 = "foo"s; EXPECT_FALSE(comp(s4, s3)); EXPECT_TRUE(comp(s3, s4)); auto s5 = "prefixbar"s; auto s6 = "foo"s; EXPECT_FALSE(comp(s6, s5)); EXPECT_TRUE(comp(s5, s6)); auto s7 = "bar"s; auto s8 = "prefixfoo"s; EXPECT_FALSE(comp(s8, s7)); EXPECT_TRUE(comp(s7, s8)); } TEST(UtilsTest, TestRelPathCompareNoPrefix) { auto s1 = "prefixfoo"s; auto s2 = "prefixbar"s; RelPathCompare comp(""); EXPECT_TRUE(comp(s2, s1)); EXPECT_FALSE(comp(s1, s2)); auto s3 = "bar"s; auto s4 = "foo"s; EXPECT_FALSE(comp(s4, s3)); EXPECT_TRUE(comp(s3, s4)); auto s5 = "prefixbar"s; auto s6 = "foo"s; EXPECT_TRUE(comp(s6, s5)); EXPECT_FALSE(comp(s5, s6)); auto s7 = "bar"s; auto s8 = "prefixfoo"s; EXPECT_FALSE(comp(s8, s7)); EXPECT_TRUE(comp(s7, s8)); }