summaryrefslogtreecommitdiffstats
path: root/test/utils_test.cpp
blob: c1f15f70e27dcdd0a00dbf148c27924b6c437077 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include "../utils.hpp"

#include <gtest/gtest.h>

using namespace sdbusplus::message::variant_ns;
using namespace phosphor::inventory::manager;
using namespace std::string_literals;

TEST(UtilsTest, TestVariantVisitor)
{
    variant<int, std::string> ib1(100);
    auto converted1 = convertVariant<variant<int>>(ib1);
    EXPECT_TRUE(get<int>(converted1) == 100);

    variant<int, std::string> ib2(100);
    EXPECT_THROW(convertVariant<variant<std::string>>(ib2), std::runtime_error);
}

TEST(UtilsTest, TestCompareFirst)
{
    auto c = compareFirst(std::less<int>());
    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));
}
OpenPOWER on IntegriCloud