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