xref: /openbmc/entity-manager/test/entity_manager/test_entity-manager.cpp (revision 7962944f072b54e22075e8290e1e6708bdb30c38)
16f4c6b4eSAlexander Hansen #include "entity_manager/utils.hpp"
26f4c6b4eSAlexander Hansen #include "utils.hpp"
36f4c6b4eSAlexander Hansen 
46f4c6b4eSAlexander Hansen #include <nlohmann/json.hpp>
56f4c6b4eSAlexander Hansen 
66f4c6b4eSAlexander Hansen #include <string>
76f4c6b4eSAlexander Hansen #include <variant>
86f4c6b4eSAlexander Hansen 
96f4c6b4eSAlexander Hansen #include "gtest/gtest.h"
106f4c6b4eSAlexander Hansen 
116f4c6b4eSAlexander Hansen using namespace std::string_literals;
126f4c6b4eSAlexander Hansen 
136f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceOneInt)
146f4c6b4eSAlexander Hansen {
156f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "$bus"}};
166f4c6b4eSAlexander Hansen     auto it = j.begin();
176f4c6b4eSAlexander Hansen     DBusInterface data;
186f4c6b4eSAlexander Hansen     data["BUS"] = 23;
196f4c6b4eSAlexander Hansen 
206f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
216f4c6b4eSAlexander Hansen 
226f4c6b4eSAlexander Hansen     nlohmann::json expected = 23;
236f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
246f4c6b4eSAlexander Hansen }
256f4c6b4eSAlexander Hansen 
266f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceOneStr)
276f4c6b4eSAlexander Hansen {
286f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "$TEST"}};
296f4c6b4eSAlexander Hansen     auto it = j.begin();
306f4c6b4eSAlexander Hansen     DBusInterface data;
316f4c6b4eSAlexander Hansen     data["TEST"] = std::string("Test");
326f4c6b4eSAlexander Hansen 
336f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
346f4c6b4eSAlexander Hansen 
356f4c6b4eSAlexander Hansen     nlohmann::json expected = "Test";
366f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
376f4c6b4eSAlexander Hansen }
386f4c6b4eSAlexander Hansen 
396f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceSecondStr)
406f4c6b4eSAlexander Hansen {
416f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "the $TEST"}};
426f4c6b4eSAlexander Hansen     auto it = j.begin();
436f4c6b4eSAlexander Hansen     DBusInterface data;
446f4c6b4eSAlexander Hansen     data["TEST"] = std::string("Test");
456f4c6b4eSAlexander Hansen 
466f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
476f4c6b4eSAlexander Hansen 
486f4c6b4eSAlexander Hansen     nlohmann::json expected = "the Test";
496f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
506f4c6b4eSAlexander Hansen }
516f4c6b4eSAlexander Hansen 
526f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceMiddleStr)
536f4c6b4eSAlexander Hansen {
546f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "the $TEST worked"}};
556f4c6b4eSAlexander Hansen     auto it = j.begin();
566f4c6b4eSAlexander Hansen     DBusInterface data;
576f4c6b4eSAlexander Hansen     data["TEST"] = std::string("Test");
586f4c6b4eSAlexander Hansen 
596f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
606f4c6b4eSAlexander Hansen 
616f4c6b4eSAlexander Hansen     nlohmann::json expected = "the Test worked";
626f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
636f4c6b4eSAlexander Hansen }
646f4c6b4eSAlexander Hansen 
656f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceLastStr)
666f4c6b4eSAlexander Hansen {
676f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "the Test $TEST"}};
686f4c6b4eSAlexander Hansen     auto it = j.begin();
696f4c6b4eSAlexander Hansen     DBusInterface data;
706f4c6b4eSAlexander Hansen     data["TEST"] = 23;
716f4c6b4eSAlexander Hansen 
726f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
736f4c6b4eSAlexander Hansen 
746f4c6b4eSAlexander Hansen     nlohmann::json expected = "the Test 23";
756f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
766f4c6b4eSAlexander Hansen }
776f4c6b4eSAlexander Hansen 
786f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, increment)
796f4c6b4eSAlexander Hansen {
806f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "3 plus 1 equals $TEST + 1"}};
816f4c6b4eSAlexander Hansen     auto it = j.begin();
826f4c6b4eSAlexander Hansen     DBusInterface data;
836f4c6b4eSAlexander Hansen     data["TEST"] = 3;
846f4c6b4eSAlexander Hansen 
856f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
866f4c6b4eSAlexander Hansen 
876f4c6b4eSAlexander Hansen     nlohmann::json expected = "3 plus 1 equals 4";
886f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
896f4c6b4eSAlexander Hansen }
906f4c6b4eSAlexander Hansen 
916f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, decrement)
926f4c6b4eSAlexander Hansen {
936f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "3 minus 1 equals $TEST - 1 !"}};
946f4c6b4eSAlexander Hansen     auto it = j.begin();
956f4c6b4eSAlexander Hansen     DBusInterface data;
966f4c6b4eSAlexander Hansen     data["TEST"] = 3;
976f4c6b4eSAlexander Hansen 
986f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
996f4c6b4eSAlexander Hansen 
1006f4c6b4eSAlexander Hansen     nlohmann::json expected = "3 minus 1 equals 2 !";
1016f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1026f4c6b4eSAlexander Hansen }
1036f4c6b4eSAlexander Hansen 
1046f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, modulus)
1056f4c6b4eSAlexander Hansen {
1066f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "3 mod 2 equals $TEST % 2"}};
1076f4c6b4eSAlexander Hansen     auto it = j.begin();
1086f4c6b4eSAlexander Hansen     DBusInterface data;
1096f4c6b4eSAlexander Hansen     data["TEST"] = 3;
1106f4c6b4eSAlexander Hansen 
1116f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1126f4c6b4eSAlexander Hansen 
1136f4c6b4eSAlexander Hansen     nlohmann::json expected = "3 mod 2 equals 1";
1146f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1156f4c6b4eSAlexander Hansen }
1166f4c6b4eSAlexander Hansen 
1176f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, multiply)
1186f4c6b4eSAlexander Hansen {
1196f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "3 * 2 equals $TEST * 2"}};
1206f4c6b4eSAlexander Hansen     auto it = j.begin();
1216f4c6b4eSAlexander Hansen     DBusInterface data;
1226f4c6b4eSAlexander Hansen     data["TEST"] = 3;
1236f4c6b4eSAlexander Hansen 
1246f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1256f4c6b4eSAlexander Hansen 
1266f4c6b4eSAlexander Hansen     nlohmann::json expected = "3 * 2 equals 6";
1276f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1286f4c6b4eSAlexander Hansen }
1296f4c6b4eSAlexander Hansen 
1306f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, divide)
1316f4c6b4eSAlexander Hansen {
1326f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2"}};
1336f4c6b4eSAlexander Hansen     auto it = j.begin();
1346f4c6b4eSAlexander Hansen     DBusInterface data;
1356f4c6b4eSAlexander Hansen     data["TEST"] = 4;
1366f4c6b4eSAlexander Hansen 
1376f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1386f4c6b4eSAlexander Hansen 
1396f4c6b4eSAlexander Hansen     nlohmann::json expected = "4 / 2 equals 2";
1406f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1416f4c6b4eSAlexander Hansen }
1426f4c6b4eSAlexander Hansen 
1436f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, multiMath)
1446f4c6b4eSAlexander Hansen {
1456f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "4 * 2 % 6 equals $TEST * 2 % 6"}};
1466f4c6b4eSAlexander Hansen     auto it = j.begin();
1476f4c6b4eSAlexander Hansen     DBusInterface data;
1486f4c6b4eSAlexander Hansen     data["TEST"] = 4;
1496f4c6b4eSAlexander Hansen 
1506f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1516f4c6b4eSAlexander Hansen 
1526f4c6b4eSAlexander Hansen     nlohmann::json expected = "4 * 2 % 6 equals 2";
1536f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1546f4c6b4eSAlexander Hansen }
1556f4c6b4eSAlexander Hansen 
1566f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacements)
1576f4c6b4eSAlexander Hansen {
1586f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "$FOO $BAR"}};
1596f4c6b4eSAlexander Hansen     auto it = j.begin();
1606f4c6b4eSAlexander Hansen     DBusInterface data;
1616f4c6b4eSAlexander Hansen     data["FOO"] = std::string("foo");
1626f4c6b4eSAlexander Hansen     data["BAR"] = std::string("bar");
1636f4c6b4eSAlexander Hansen 
1646f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1656f4c6b4eSAlexander Hansen 
1666f4c6b4eSAlexander Hansen     nlohmann::json expected = "foo bar";
1676f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1686f4c6b4eSAlexander Hansen }
1696f4c6b4eSAlexander Hansen 
1706f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacementsWithMath)
1716f4c6b4eSAlexander Hansen {
1726f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2 $BAR"}};
1736f4c6b4eSAlexander Hansen     auto it = j.begin();
1746f4c6b4eSAlexander Hansen     DBusInterface data;
1756f4c6b4eSAlexander Hansen     data["TEST"] = 4;
1766f4c6b4eSAlexander Hansen     data["BAR"] = std::string("bar");
1776f4c6b4eSAlexander Hansen 
1786f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1796f4c6b4eSAlexander Hansen 
1806f4c6b4eSAlexander Hansen     nlohmann::json expected = "4 / 2 equals 2 bar";
1816f4c6b4eSAlexander Hansen }
1826f4c6b4eSAlexander Hansen 
1836f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacementsWithMath2)
1846f4c6b4eSAlexander Hansen {
1856f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "4 / 2 equals $ADDRESS / 2 $BAR"}};
1866f4c6b4eSAlexander Hansen     auto it = j.begin();
1876f4c6b4eSAlexander Hansen     DBusInterface data;
1886f4c6b4eSAlexander Hansen     data["ADDRESS"] = 4;
1896f4c6b4eSAlexander Hansen     data["BAR"] = std::string("bar");
1906f4c6b4eSAlexander Hansen 
1916f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
1926f4c6b4eSAlexander Hansen 
1936f4c6b4eSAlexander Hansen     nlohmann::json expected = "4 / 2 equals 2 bar";
1946f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
1956f4c6b4eSAlexander Hansen }
1966f4c6b4eSAlexander Hansen 
1976f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, hexAndWrongCase)
1986f4c6b4eSAlexander Hansen {
1996f4c6b4eSAlexander Hansen     nlohmann::json j = {{"Address", "0x54"},
2006f4c6b4eSAlexander Hansen                         {"Bus", 15},
2016f4c6b4eSAlexander Hansen                         {"Name", "$bus sensor 0"},
2026f4c6b4eSAlexander Hansen                         {"Type", "SomeType"}};
2036f4c6b4eSAlexander Hansen 
2046f4c6b4eSAlexander Hansen     DBusInterface data;
2056f4c6b4eSAlexander Hansen     data["BUS"] = 15;
2066f4c6b4eSAlexander Hansen 
2076f4c6b4eSAlexander Hansen     for (auto it = j.begin(); it != j.end(); it++)
2086f4c6b4eSAlexander Hansen     {
2096f4c6b4eSAlexander Hansen         em_utils::templateCharReplace(it, data, 0);
2106f4c6b4eSAlexander Hansen     }
2116f4c6b4eSAlexander Hansen     nlohmann::json expected = {{"Address", 84},
2126f4c6b4eSAlexander Hansen                                {"Bus", 15},
2136f4c6b4eSAlexander Hansen                                {"Name", "15 sensor 0"},
2146f4c6b4eSAlexander Hansen                                {"Type", "SomeType"}};
2156f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j);
2166f4c6b4eSAlexander Hansen }
2176f4c6b4eSAlexander Hansen 
2186f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceSecondAsInt)
2196f4c6b4eSAlexander Hansen {
2206f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "twelve is $TEST"}};
2216f4c6b4eSAlexander Hansen     auto it = j.begin();
2226f4c6b4eSAlexander Hansen     DBusInterface data;
2236f4c6b4eSAlexander Hansen     data["test"] = 12;
2246f4c6b4eSAlexander Hansen 
2256f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
2266f4c6b4eSAlexander Hansen 
2276f4c6b4eSAlexander Hansen     nlohmann::json expected = "twelve is 12";
2286f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
2296f4c6b4eSAlexander Hansen }
2306f4c6b4eSAlexander Hansen 
2316f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, singleHex)
2326f4c6b4eSAlexander Hansen {
2336f4c6b4eSAlexander Hansen     nlohmann::json j = {{"foo", "0x54"}};
2346f4c6b4eSAlexander Hansen     auto it = j.begin();
2356f4c6b4eSAlexander Hansen     DBusInterface data;
2366f4c6b4eSAlexander Hansen 
2376f4c6b4eSAlexander Hansen     em_utils::templateCharReplace(it, data, 0);
2386f4c6b4eSAlexander Hansen 
2396f4c6b4eSAlexander Hansen     nlohmann::json expected = 84;
2406f4c6b4eSAlexander Hansen     EXPECT_EQ(expected, j["foo"]);
2416f4c6b4eSAlexander Hansen }
2426f4c6b4eSAlexander Hansen 
243*7962944fSChau Ly TEST(TemplateCharReplace, leftOverTemplateVars)
244*7962944fSChau Ly {
245*7962944fSChau Ly     nlohmann::json j = {{"foo", "$EXISTENT_VAR and $NON_EXISTENT_VAR"}};
246*7962944fSChau Ly     auto it = j.begin();
247*7962944fSChau Ly 
248*7962944fSChau Ly     DBusInterface data;
249*7962944fSChau Ly     data["EXISTENT_VAR"] = std::string("Replaced");
250*7962944fSChau Ly 
251*7962944fSChau Ly     DBusObject object;
252*7962944fSChau Ly     object["PATH"] = data;
253*7962944fSChau Ly 
254*7962944fSChau Ly     em_utils::templateCharReplace(it, object, 0);
255*7962944fSChau Ly 
256*7962944fSChau Ly     nlohmann::json expected = "Replaced and ";
257*7962944fSChau Ly     EXPECT_EQ(expected, j["foo"]);
258*7962944fSChau Ly }
259*7962944fSChau Ly 
260*7962944fSChau Ly TEST(HandleLeftOverTemplateVars, replaceLeftOverTemplateVar)
261*7962944fSChau Ly {
262*7962944fSChau Ly     nlohmann::json j = {{"foo", "the Test $TEST is $TESTED"}};
263*7962944fSChau Ly     auto it = j.begin();
264*7962944fSChau Ly 
265*7962944fSChau Ly     em_utils::handleLeftOverTemplateVars(it);
266*7962944fSChau Ly 
267*7962944fSChau Ly     nlohmann::json expected = "the Test  is ";
268*7962944fSChau Ly     EXPECT_EQ(expected, j["foo"]);
269*7962944fSChau Ly }
270*7962944fSChau Ly 
2716f4c6b4eSAlexander Hansen TEST(MatchProbe, stringEqString)
2726f4c6b4eSAlexander Hansen {
2736f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foo")"_json;
2746f4c6b4eSAlexander Hansen     DBusValueVariant v = "foo"s;
2756f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
2766f4c6b4eSAlexander Hansen }
2776f4c6b4eSAlexander Hansen 
2786f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexEqString)
2796f4c6b4eSAlexander Hansen {
2806f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foo*")"_json;
2816f4c6b4eSAlexander Hansen     DBusValueVariant v = "foobar"s;
2826f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
2836f4c6b4eSAlexander Hansen }
2846f4c6b4eSAlexander Hansen 
2856f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqString)
2866f4c6b4eSAlexander Hansen {
2876f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foobar")"_json;
2886f4c6b4eSAlexander Hansen     DBusValueVariant v = "foo"s;
2896f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
2906f4c6b4eSAlexander Hansen }
2916f4c6b4eSAlexander Hansen 
2926f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexError)
2936f4c6b4eSAlexander Hansen {
2946f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foo[")"_json;
2956f4c6b4eSAlexander Hansen     DBusValueVariant v = "foobar"s;
2966f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
2976f4c6b4eSAlexander Hansen }
2986f4c6b4eSAlexander Hansen 
2996f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexNotPrefix)
3006f4c6b4eSAlexander Hansen {
3016f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foo(?!bar)...foo")"_json;
3026f4c6b4eSAlexander Hansen     DBusValueVariant v1 = "foobarfoo"s;
3036f4c6b4eSAlexander Hansen     DBusValueVariant v2 = "foofoofoo"s;
3046f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v1));
3056f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v2));
3066f4c6b4eSAlexander Hansen }
3076f4c6b4eSAlexander Hansen 
3086f4c6b4eSAlexander Hansen TEST(MatchProbe, stringZeroNeqFalse)
3096f4c6b4eSAlexander Hansen {
3106f4c6b4eSAlexander Hansen     nlohmann::json j = R"("0")"_json;
3116f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
3126f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3136f4c6b4eSAlexander Hansen }
3146f4c6b4eSAlexander Hansen 
3156f4c6b4eSAlexander Hansen TEST(MatchProbe, stringOneNeqTrue)
3166f4c6b4eSAlexander Hansen {
3176f4c6b4eSAlexander Hansen     nlohmann::json j = R"("1")"_json;
3186f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
3196f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3206f4c6b4eSAlexander Hansen }
3216f4c6b4eSAlexander Hansen 
3226f4c6b4eSAlexander Hansen TEST(MatchProbe, stringElevenNeqTrue)
3236f4c6b4eSAlexander Hansen {
3246f4c6b4eSAlexander Hansen     nlohmann::json j = R"("11")"_json;
3256f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
3266f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3276f4c6b4eSAlexander Hansen }
3286f4c6b4eSAlexander Hansen 
3296f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqFalse)
3306f4c6b4eSAlexander Hansen {
3316f4c6b4eSAlexander Hansen     nlohmann::json j = R"("false")"_json;
3326f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
3336f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3346f4c6b4eSAlexander Hansen }
3356f4c6b4eSAlexander Hansen 
3366f4c6b4eSAlexander Hansen TEST(MatchProbe, stringTrueNeqTrue)
3376f4c6b4eSAlexander Hansen {
3386f4c6b4eSAlexander Hansen     nlohmann::json j = R"("true")"_json;
3396f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
3406f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3416f4c6b4eSAlexander Hansen }
3426f4c6b4eSAlexander Hansen 
3436f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqTrue)
3446f4c6b4eSAlexander Hansen {
3456f4c6b4eSAlexander Hansen     nlohmann::json j = R"("false")"_json;
3466f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
3476f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3486f4c6b4eSAlexander Hansen }
3496f4c6b4eSAlexander Hansen 
3506f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint8)
3516f4c6b4eSAlexander Hansen {
3526f4c6b4eSAlexander Hansen     nlohmann::json j = R"("255")"_json;
3536f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(255);
3546f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3556f4c6b4eSAlexander Hansen }
3566f4c6b4eSAlexander Hansen 
3576f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint8Overflow)
3586f4c6b4eSAlexander Hansen {
3596f4c6b4eSAlexander Hansen     nlohmann::json j = R"("65535")"_json;
3606f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(255);
3616f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3626f4c6b4eSAlexander Hansen }
3636f4c6b4eSAlexander Hansen 
3646f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqUint8Zero)
3656f4c6b4eSAlexander Hansen {
3666f4c6b4eSAlexander Hansen     nlohmann::json j = R"("false")"_json;
3676f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(0);
3686f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3696f4c6b4eSAlexander Hansen }
3706f4c6b4eSAlexander Hansen 
3716f4c6b4eSAlexander Hansen TEST(MatchProbe, stringTrueNeqUint8Zero)
3726f4c6b4eSAlexander Hansen {
3736f4c6b4eSAlexander Hansen     nlohmann::json j = R"("true")"_json;
3746f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(1);
3756f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3766f4c6b4eSAlexander Hansen }
3776f4c6b4eSAlexander Hansen 
3786f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint32)
3796f4c6b4eSAlexander Hansen {
3806f4c6b4eSAlexander Hansen     nlohmann::json j = R"("11")"_json;
3816f4c6b4eSAlexander Hansen     DBusValueVariant v = uint32_t(11);
3826f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3836f4c6b4eSAlexander Hansen }
3846f4c6b4eSAlexander Hansen 
3856f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqInt32)
3866f4c6b4eSAlexander Hansen {
3876f4c6b4eSAlexander Hansen     nlohmann::json j = R"("-11")"_json;
3886f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-11);
3896f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3906f4c6b4eSAlexander Hansen }
3916f4c6b4eSAlexander Hansen 
3926f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexNeqInt32)
3936f4c6b4eSAlexander Hansen {
3946f4c6b4eSAlexander Hansen     nlohmann::json j = R"("1*4")"_json;
3956f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(124);
3966f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
3976f4c6b4eSAlexander Hansen }
3986f4c6b4eSAlexander Hansen 
3996f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint64)
4006f4c6b4eSAlexander Hansen {
4016f4c6b4eSAlexander Hansen     nlohmann::json j = R"("foo")"_json;
4026f4c6b4eSAlexander Hansen     DBusValueVariant v = uint64_t(65535);
4036f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4046f4c6b4eSAlexander Hansen }
4056f4c6b4eSAlexander Hansen 
4066f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqDouble)
4076f4c6b4eSAlexander Hansen {
4086f4c6b4eSAlexander Hansen     nlohmann::json j = R"("123.4")"_json;
4096f4c6b4eSAlexander Hansen     DBusValueVariant v = double(123.4);
4106f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4116f4c6b4eSAlexander Hansen }
4126f4c6b4eSAlexander Hansen 
4136f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqEmpty)
4146f4c6b4eSAlexander Hansen {
4156f4c6b4eSAlexander Hansen     nlohmann::json j = R"("-123.4")"_json;
4166f4c6b4eSAlexander Hansen     DBusValueVariant v;
4176f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4186f4c6b4eSAlexander Hansen }
4196f4c6b4eSAlexander Hansen 
4206f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqArray)
4216f4c6b4eSAlexander Hansen {
4226f4c6b4eSAlexander Hansen     nlohmann::json j = R"("-123.4")"_json;
4236f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2};
4246f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4256f4c6b4eSAlexander Hansen }
4266f4c6b4eSAlexander Hansen 
4276f4c6b4eSAlexander Hansen TEST(MatchProbe, boolNeqString)
4286f4c6b4eSAlexander Hansen {
4296f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
4306f4c6b4eSAlexander Hansen     DBusValueVariant v = "false"s;
4316f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4326f4c6b4eSAlexander Hansen }
4336f4c6b4eSAlexander Hansen 
4346f4c6b4eSAlexander Hansen TEST(MatchProbe, trueEqTrue)
4356f4c6b4eSAlexander Hansen {
4366f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4376f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
4386f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
4396f4c6b4eSAlexander Hansen }
4406f4c6b4eSAlexander Hansen 
4416f4c6b4eSAlexander Hansen TEST(MatchProbe, falseEqFalse)
4426f4c6b4eSAlexander Hansen {
4436f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
4446f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
4456f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
4466f4c6b4eSAlexander Hansen }
4476f4c6b4eSAlexander Hansen 
4486f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqFalse)
4496f4c6b4eSAlexander Hansen {
4506f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4516f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
4526f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4536f4c6b4eSAlexander Hansen }
4546f4c6b4eSAlexander Hansen 
4556f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqInt32Zero)
4566f4c6b4eSAlexander Hansen {
4576f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4586f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(0);
4596f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4606f4c6b4eSAlexander Hansen }
4616f4c6b4eSAlexander Hansen 
4626f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqInt32NegativeOne)
4636f4c6b4eSAlexander Hansen {
4646f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4656f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-1);
4666f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4676f4c6b4eSAlexander Hansen }
4686f4c6b4eSAlexander Hansen 
4696f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqUint32One)
4706f4c6b4eSAlexander Hansen {
4716f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
4726f4c6b4eSAlexander Hansen     DBusValueVariant v = uint32_t(1);
4736f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4746f4c6b4eSAlexander Hansen }
4756f4c6b4eSAlexander Hansen 
4766f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqUint32Zero)
4776f4c6b4eSAlexander Hansen {
4786f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
4796f4c6b4eSAlexander Hansen     DBusValueVariant v = uint32_t(0);
4806f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4816f4c6b4eSAlexander Hansen }
4826f4c6b4eSAlexander Hansen 
4836f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqDoubleNegativeOne)
4846f4c6b4eSAlexander Hansen {
4856f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4866f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-1.1);
4876f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4886f4c6b4eSAlexander Hansen }
4896f4c6b4eSAlexander Hansen 
4906f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqDoubleOne)
4916f4c6b4eSAlexander Hansen {
4926f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
4936f4c6b4eSAlexander Hansen     DBusValueVariant v = double(1.0);
4946f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
4956f4c6b4eSAlexander Hansen }
4966f4c6b4eSAlexander Hansen 
4976f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqDoubleOne)
4986f4c6b4eSAlexander Hansen {
4996f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
5006f4c6b4eSAlexander Hansen     DBusValueVariant v = double(1.0);
5016f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5026f4c6b4eSAlexander Hansen }
5036f4c6b4eSAlexander Hansen 
5046f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqDoubleZero)
5056f4c6b4eSAlexander Hansen {
5066f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
5076f4c6b4eSAlexander Hansen     DBusValueVariant v = double(0.0);
5086f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5096f4c6b4eSAlexander Hansen }
5106f4c6b4eSAlexander Hansen 
5116f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqEmpty)
5126f4c6b4eSAlexander Hansen {
5136f4c6b4eSAlexander Hansen     nlohmann::json j = R"(false)"_json;
5146f4c6b4eSAlexander Hansen     DBusValueVariant v;
5156f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5166f4c6b4eSAlexander Hansen }
5176f4c6b4eSAlexander Hansen 
5186f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqEmpty)
5196f4c6b4eSAlexander Hansen {
5206f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
5216f4c6b4eSAlexander Hansen     DBusValueVariant v;
5226f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5236f4c6b4eSAlexander Hansen }
5246f4c6b4eSAlexander Hansen 
5256f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqArray)
5266f4c6b4eSAlexander Hansen {
5276f4c6b4eSAlexander Hansen     nlohmann::json j = R"(true)"_json;
5286f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2};
5296f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5306f4c6b4eSAlexander Hansen }
5316f4c6b4eSAlexander Hansen 
5326f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqString)
5336f4c6b4eSAlexander Hansen {
5346f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5356f4c6b4eSAlexander Hansen     DBusValueVariant v = "11"s;
5366f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5376f4c6b4eSAlexander Hansen }
5386f4c6b4eSAlexander Hansen 
5396f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqTrue)
5406f4c6b4eSAlexander Hansen {
5416f4c6b4eSAlexander Hansen     nlohmann::json j = R"(1)"_json;
5426f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
5436f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5446f4c6b4eSAlexander Hansen }
5456f4c6b4eSAlexander Hansen 
5466f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqFalse)
5476f4c6b4eSAlexander Hansen {
5486f4c6b4eSAlexander Hansen     nlohmann::json j = R"(0)"_json;
5496f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
5506f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5516f4c6b4eSAlexander Hansen }
5526f4c6b4eSAlexander Hansen 
5536f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqUint8)
5546f4c6b4eSAlexander Hansen {
5556f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5566f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(11);
5576f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
5586f4c6b4eSAlexander Hansen }
5596f4c6b4eSAlexander Hansen 
5606f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqUint8)
5616f4c6b4eSAlexander Hansen {
5626f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5636f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(12);
5646f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5656f4c6b4eSAlexander Hansen }
5666f4c6b4eSAlexander Hansen 
5676f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqUint8Overflow)
5686f4c6b4eSAlexander Hansen {
5696f4c6b4eSAlexander Hansen     nlohmann::json j = R"(65535)"_json;
5706f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(255);
5716f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5726f4c6b4eSAlexander Hansen }
5736f4c6b4eSAlexander Hansen 
5746f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqInt8)
5756f4c6b4eSAlexander Hansen {
5766f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5776f4c6b4eSAlexander Hansen     DBusValueVariant v = int8_t(11);
5786f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
5796f4c6b4eSAlexander Hansen }
5806f4c6b4eSAlexander Hansen 
5816f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqDouble)
5826f4c6b4eSAlexander Hansen {
5836f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5846f4c6b4eSAlexander Hansen     DBusValueVariant v = double(11.0);
5856f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
5866f4c6b4eSAlexander Hansen }
5876f4c6b4eSAlexander Hansen 
5886f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqDouble)
5896f4c6b4eSAlexander Hansen {
5906f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5916f4c6b4eSAlexander Hansen     DBusValueVariant v = double(11.7);
5926f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
5936f4c6b4eSAlexander Hansen }
5946f4c6b4eSAlexander Hansen 
5956f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqEmpty)
5966f4c6b4eSAlexander Hansen {
5976f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
5986f4c6b4eSAlexander Hansen     DBusValueVariant v;
5996f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6006f4c6b4eSAlexander Hansen }
6016f4c6b4eSAlexander Hansen 
6026f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqArray)
6036f4c6b4eSAlexander Hansen {
6046f4c6b4eSAlexander Hansen     nlohmann::json j = R"(11)"_json;
6056f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{11};
6066f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6076f4c6b4eSAlexander Hansen }
6086f4c6b4eSAlexander Hansen 
6096f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqString)
6106f4c6b4eSAlexander Hansen {
6116f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6126f4c6b4eSAlexander Hansen     DBusValueVariant v = "-11"s;
6136f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6146f4c6b4eSAlexander Hansen }
6156f4c6b4eSAlexander Hansen 
6166f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqTrue)
6176f4c6b4eSAlexander Hansen {
6186f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-1)"_json;
6196f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
6206f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6216f4c6b4eSAlexander Hansen }
6226f4c6b4eSAlexander Hansen 
6236f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqUint8)
6246f4c6b4eSAlexander Hansen {
6256f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6266f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(11);
6276f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6286f4c6b4eSAlexander Hansen }
6296f4c6b4eSAlexander Hansen 
6306f4c6b4eSAlexander Hansen TEST(MatchProbe, intEqInt8)
6316f4c6b4eSAlexander Hansen {
6326f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6336f4c6b4eSAlexander Hansen     DBusValueVariant v = int8_t(-11);
6346f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
6356f4c6b4eSAlexander Hansen }
6366f4c6b4eSAlexander Hansen 
6376f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqDouble)
6386f4c6b4eSAlexander Hansen {
6396f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-124)"_json;
6406f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-123.0);
6416f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6426f4c6b4eSAlexander Hansen }
6436f4c6b4eSAlexander Hansen 
6446f4c6b4eSAlexander Hansen TEST(MatchProbe, intEqDouble)
6456f4c6b4eSAlexander Hansen {
6466f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6476f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-11.0);
6486f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
6496f4c6b4eSAlexander Hansen }
6506f4c6b4eSAlexander Hansen 
6516f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqDoubleRound)
6526f4c6b4eSAlexander Hansen {
6536f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6546f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-11.7);
6556f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6566f4c6b4eSAlexander Hansen }
6576f4c6b4eSAlexander Hansen 
6586f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqEmpty)
6596f4c6b4eSAlexander Hansen {
6606f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6616f4c6b4eSAlexander Hansen     DBusValueVariant v;
6626f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6636f4c6b4eSAlexander Hansen }
6646f4c6b4eSAlexander Hansen 
6656f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqArray)
6666f4c6b4eSAlexander Hansen {
6676f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11)"_json;
6686f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{11};
6696f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6706f4c6b4eSAlexander Hansen }
6716f4c6b4eSAlexander Hansen 
6726f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqString)
6736f4c6b4eSAlexander Hansen {
6746f4c6b4eSAlexander Hansen     nlohmann::json j = R"(0.0)"_json;
6756f4c6b4eSAlexander Hansen     DBusValueVariant v = "0.0"s;
6766f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6776f4c6b4eSAlexander Hansen }
6786f4c6b4eSAlexander Hansen 
6796f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqFalse)
6806f4c6b4eSAlexander Hansen {
6816f4c6b4eSAlexander Hansen     nlohmann::json j = R"(0.0)"_json;
6826f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
6836f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6846f4c6b4eSAlexander Hansen }
6856f4c6b4eSAlexander Hansen 
6866f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqTrue)
6876f4c6b4eSAlexander Hansen {
6886f4c6b4eSAlexander Hansen     nlohmann::json j = R"(1.0)"_json;
6896f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
6906f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
6916f4c6b4eSAlexander Hansen }
6926f4c6b4eSAlexander Hansen 
6936f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleEqInt32)
6946f4c6b4eSAlexander Hansen {
6956f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-124.0)"_json;
6966f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-124);
6976f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
6986f4c6b4eSAlexander Hansen }
6996f4c6b4eSAlexander Hansen 
7006f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqInt32)
7016f4c6b4eSAlexander Hansen {
7026f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-124.0)"_json;
7036f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-123);
7046f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7056f4c6b4eSAlexander Hansen }
7066f4c6b4eSAlexander Hansen 
7076f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleRoundNeqInt)
7086f4c6b4eSAlexander Hansen {
7096f4c6b4eSAlexander Hansen     nlohmann::json j = R"(124.7)"_json;
7106f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(124);
7116f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7126f4c6b4eSAlexander Hansen }
7136f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleEqDouble)
7146f4c6b4eSAlexander Hansen {
7156f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-124.2)"_json;
7166f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-124.2);
7176f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
7186f4c6b4eSAlexander Hansen }
7196f4c6b4eSAlexander Hansen 
7206f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqDouble)
7216f4c6b4eSAlexander Hansen {
7226f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-124.3)"_json;
7236f4c6b4eSAlexander Hansen     DBusValueVariant v = double(-124.2);
7246f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7256f4c6b4eSAlexander Hansen }
7266f4c6b4eSAlexander Hansen 
7276f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqEmpty)
7286f4c6b4eSAlexander Hansen {
7296f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11.0)"_json;
7306f4c6b4eSAlexander Hansen     DBusValueVariant v;
7316f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7326f4c6b4eSAlexander Hansen }
7336f4c6b4eSAlexander Hansen 
7346f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqArray)
7356f4c6b4eSAlexander Hansen {
7366f4c6b4eSAlexander Hansen     nlohmann::json j = R"(-11.2)"_json;
7376f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{11};
7386f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7396f4c6b4eSAlexander Hansen }
7406f4c6b4eSAlexander Hansen 
7416f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqString)
7426f4c6b4eSAlexander Hansen {
7436f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7446f4c6b4eSAlexander Hansen     DBusValueVariant v = "hello"s;
7456f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7466f4c6b4eSAlexander Hansen }
7476f4c6b4eSAlexander Hansen 
7486f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqFalse)
7496f4c6b4eSAlexander Hansen {
7506f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7516f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
7526f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7536f4c6b4eSAlexander Hansen }
7546f4c6b4eSAlexander Hansen 
7556f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqTrue)
7566f4c6b4eSAlexander Hansen {
7576f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7586f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
7596f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7606f4c6b4eSAlexander Hansen }
7616f4c6b4eSAlexander Hansen 
7626f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqUint8)
7636f4c6b4eSAlexander Hansen {
7646f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7656f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(1);
7666f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7676f4c6b4eSAlexander Hansen }
7686f4c6b4eSAlexander Hansen 
7696f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqInt32)
7706f4c6b4eSAlexander Hansen {
7716f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7726f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-1);
7736f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7746f4c6b4eSAlexander Hansen }
7756f4c6b4eSAlexander Hansen 
7766f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqDouble)
7776f4c6b4eSAlexander Hansen {
7786f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7796f4c6b4eSAlexander Hansen     DBusValueVariant v = double(1.1);
7806f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7816f4c6b4eSAlexander Hansen }
7826f4c6b4eSAlexander Hansen 
7836f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayEqArray)
7846f4c6b4eSAlexander Hansen {
7856f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
7866f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2};
7876f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
7886f4c6b4eSAlexander Hansen }
7896f4c6b4eSAlexander Hansen 
7906f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqArrayDiffSize1)
7916f4c6b4eSAlexander Hansen {
7926f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2, 3])"_json;
7936f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2};
7946f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
7956f4c6b4eSAlexander Hansen }
7966f4c6b4eSAlexander Hansen 
7976f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqArrayDiffSize2)
7986f4c6b4eSAlexander Hansen {
7996f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1, 2])"_json;
8006f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2, 3};
8016f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8026f4c6b4eSAlexander Hansen }
8036f4c6b4eSAlexander Hansen 
8046f4c6b4eSAlexander Hansen TEST(MatchProbe, emptyArrayEqEmptyArray)
8056f4c6b4eSAlexander Hansen {
8066f4c6b4eSAlexander Hansen     nlohmann::json j = R"([])"_json;
8076f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{};
8086f4c6b4eSAlexander Hansen     EXPECT_TRUE(matchProbe(j, v));
8096f4c6b4eSAlexander Hansen }
8106f4c6b4eSAlexander Hansen 
8116f4c6b4eSAlexander Hansen TEST(MatchProbe, emptyArrayNeqArray)
8126f4c6b4eSAlexander Hansen {
8136f4c6b4eSAlexander Hansen     nlohmann::json j = R"([])"_json;
8146f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1};
8156f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8166f4c6b4eSAlexander Hansen }
8176f4c6b4eSAlexander Hansen 
8186f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqEmptyArray)
8196f4c6b4eSAlexander Hansen {
8206f4c6b4eSAlexander Hansen     nlohmann::json j = R"([1])"_json;
8216f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{};
8226f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8236f4c6b4eSAlexander Hansen }
8246f4c6b4eSAlexander Hansen 
8256f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqString)
8266f4c6b4eSAlexander Hansen {
8276f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8286f4c6b4eSAlexander Hansen     DBusValueVariant v = "hello"s;
8296f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8306f4c6b4eSAlexander Hansen }
8316f4c6b4eSAlexander Hansen 
8326f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqFalse)
8336f4c6b4eSAlexander Hansen {
8346f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8356f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
8366f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8376f4c6b4eSAlexander Hansen }
8386f4c6b4eSAlexander Hansen 
8396f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqTrue)
8406f4c6b4eSAlexander Hansen {
8416f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8426f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
8436f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8446f4c6b4eSAlexander Hansen }
8456f4c6b4eSAlexander Hansen 
8466f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqUint8)
8476f4c6b4eSAlexander Hansen {
8486f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8496f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(1);
8506f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8516f4c6b4eSAlexander Hansen }
8526f4c6b4eSAlexander Hansen 
8536f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqInt32)
8546f4c6b4eSAlexander Hansen {
8556f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8566f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-1);
8576f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8586f4c6b4eSAlexander Hansen }
8596f4c6b4eSAlexander Hansen 
8606f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqDouble)
8616f4c6b4eSAlexander Hansen {
8626f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8636f4c6b4eSAlexander Hansen     DBusValueVariant v = double(1.1);
8646f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8656f4c6b4eSAlexander Hansen }
8666f4c6b4eSAlexander Hansen 
8676f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqArray)
8686f4c6b4eSAlexander Hansen {
8696f4c6b4eSAlexander Hansen     nlohmann::json j = R"({"foo": "bar"})"_json;
8706f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{1, 2};
8716f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8726f4c6b4eSAlexander Hansen }
8736f4c6b4eSAlexander Hansen 
8746f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqString)
8756f4c6b4eSAlexander Hansen {
8766f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
8776f4c6b4eSAlexander Hansen     DBusValueVariant v = "hello"s;
8786f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8796f4c6b4eSAlexander Hansen }
8806f4c6b4eSAlexander Hansen 
8816f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqFalse)
8826f4c6b4eSAlexander Hansen {
8836f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
8846f4c6b4eSAlexander Hansen     DBusValueVariant v = false;
8856f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8866f4c6b4eSAlexander Hansen }
8876f4c6b4eSAlexander Hansen 
8886f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqTrue)
8896f4c6b4eSAlexander Hansen {
8906f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
8916f4c6b4eSAlexander Hansen     DBusValueVariant v = true;
8926f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
8936f4c6b4eSAlexander Hansen }
8946f4c6b4eSAlexander Hansen 
8956f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqUint8)
8966f4c6b4eSAlexander Hansen {
8976f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
8986f4c6b4eSAlexander Hansen     DBusValueVariant v = uint8_t(1);
8996f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
9006f4c6b4eSAlexander Hansen }
9016f4c6b4eSAlexander Hansen 
9026f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqInt32)
9036f4c6b4eSAlexander Hansen {
9046f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
9056f4c6b4eSAlexander Hansen     DBusValueVariant v = int32_t(-1);
9066f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
9076f4c6b4eSAlexander Hansen }
9086f4c6b4eSAlexander Hansen 
9096f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqDouble)
9106f4c6b4eSAlexander Hansen {
9116f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
9126f4c6b4eSAlexander Hansen     DBusValueVariant v = double(1.1);
9136f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
9146f4c6b4eSAlexander Hansen }
9156f4c6b4eSAlexander Hansen 
9166f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqArray)
9176f4c6b4eSAlexander Hansen {
9186f4c6b4eSAlexander Hansen     nlohmann::json j = R"(null)"_json;
9196f4c6b4eSAlexander Hansen     DBusValueVariant v = std::vector<uint8_t>{};
9206f4c6b4eSAlexander Hansen     EXPECT_FALSE(matchProbe(j, v));
9216f4c6b4eSAlexander Hansen }
922