1*6f4c6b4eSAlexander Hansen #include "entity_manager/utils.hpp" 2*6f4c6b4eSAlexander Hansen #include "utils.hpp" 3*6f4c6b4eSAlexander Hansen 4*6f4c6b4eSAlexander Hansen #include <nlohmann/json.hpp> 5*6f4c6b4eSAlexander Hansen 6*6f4c6b4eSAlexander Hansen #include <string> 7*6f4c6b4eSAlexander Hansen #include <variant> 8*6f4c6b4eSAlexander Hansen 9*6f4c6b4eSAlexander Hansen #include "gtest/gtest.h" 10*6f4c6b4eSAlexander Hansen 11*6f4c6b4eSAlexander Hansen using namespace std::string_literals; 12*6f4c6b4eSAlexander Hansen 13*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceOneInt) 14*6f4c6b4eSAlexander Hansen { 15*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "$bus"}}; 16*6f4c6b4eSAlexander Hansen auto it = j.begin(); 17*6f4c6b4eSAlexander Hansen DBusInterface data; 18*6f4c6b4eSAlexander Hansen data["BUS"] = 23; 19*6f4c6b4eSAlexander Hansen 20*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 21*6f4c6b4eSAlexander Hansen 22*6f4c6b4eSAlexander Hansen nlohmann::json expected = 23; 23*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 24*6f4c6b4eSAlexander Hansen } 25*6f4c6b4eSAlexander Hansen 26*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceOneStr) 27*6f4c6b4eSAlexander Hansen { 28*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "$TEST"}}; 29*6f4c6b4eSAlexander Hansen auto it = j.begin(); 30*6f4c6b4eSAlexander Hansen DBusInterface data; 31*6f4c6b4eSAlexander Hansen data["TEST"] = std::string("Test"); 32*6f4c6b4eSAlexander Hansen 33*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 34*6f4c6b4eSAlexander Hansen 35*6f4c6b4eSAlexander Hansen nlohmann::json expected = "Test"; 36*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 37*6f4c6b4eSAlexander Hansen } 38*6f4c6b4eSAlexander Hansen 39*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceSecondStr) 40*6f4c6b4eSAlexander Hansen { 41*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "the $TEST"}}; 42*6f4c6b4eSAlexander Hansen auto it = j.begin(); 43*6f4c6b4eSAlexander Hansen DBusInterface data; 44*6f4c6b4eSAlexander Hansen data["TEST"] = std::string("Test"); 45*6f4c6b4eSAlexander Hansen 46*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 47*6f4c6b4eSAlexander Hansen 48*6f4c6b4eSAlexander Hansen nlohmann::json expected = "the Test"; 49*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 50*6f4c6b4eSAlexander Hansen } 51*6f4c6b4eSAlexander Hansen 52*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceMiddleStr) 53*6f4c6b4eSAlexander Hansen { 54*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "the $TEST worked"}}; 55*6f4c6b4eSAlexander Hansen auto it = j.begin(); 56*6f4c6b4eSAlexander Hansen DBusInterface data; 57*6f4c6b4eSAlexander Hansen data["TEST"] = std::string("Test"); 58*6f4c6b4eSAlexander Hansen 59*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 60*6f4c6b4eSAlexander Hansen 61*6f4c6b4eSAlexander Hansen nlohmann::json expected = "the Test worked"; 62*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 63*6f4c6b4eSAlexander Hansen } 64*6f4c6b4eSAlexander Hansen 65*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceLastStr) 66*6f4c6b4eSAlexander Hansen { 67*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "the Test $TEST"}}; 68*6f4c6b4eSAlexander Hansen auto it = j.begin(); 69*6f4c6b4eSAlexander Hansen DBusInterface data; 70*6f4c6b4eSAlexander Hansen data["TEST"] = 23; 71*6f4c6b4eSAlexander Hansen 72*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 73*6f4c6b4eSAlexander Hansen 74*6f4c6b4eSAlexander Hansen nlohmann::json expected = "the Test 23"; 75*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 76*6f4c6b4eSAlexander Hansen } 77*6f4c6b4eSAlexander Hansen 78*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, increment) 79*6f4c6b4eSAlexander Hansen { 80*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "3 plus 1 equals $TEST + 1"}}; 81*6f4c6b4eSAlexander Hansen auto it = j.begin(); 82*6f4c6b4eSAlexander Hansen DBusInterface data; 83*6f4c6b4eSAlexander Hansen data["TEST"] = 3; 84*6f4c6b4eSAlexander Hansen 85*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 86*6f4c6b4eSAlexander Hansen 87*6f4c6b4eSAlexander Hansen nlohmann::json expected = "3 plus 1 equals 4"; 88*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 89*6f4c6b4eSAlexander Hansen } 90*6f4c6b4eSAlexander Hansen 91*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, decrement) 92*6f4c6b4eSAlexander Hansen { 93*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "3 minus 1 equals $TEST - 1 !"}}; 94*6f4c6b4eSAlexander Hansen auto it = j.begin(); 95*6f4c6b4eSAlexander Hansen DBusInterface data; 96*6f4c6b4eSAlexander Hansen data["TEST"] = 3; 97*6f4c6b4eSAlexander Hansen 98*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 99*6f4c6b4eSAlexander Hansen 100*6f4c6b4eSAlexander Hansen nlohmann::json expected = "3 minus 1 equals 2 !"; 101*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 102*6f4c6b4eSAlexander Hansen } 103*6f4c6b4eSAlexander Hansen 104*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, modulus) 105*6f4c6b4eSAlexander Hansen { 106*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "3 mod 2 equals $TEST % 2"}}; 107*6f4c6b4eSAlexander Hansen auto it = j.begin(); 108*6f4c6b4eSAlexander Hansen DBusInterface data; 109*6f4c6b4eSAlexander Hansen data["TEST"] = 3; 110*6f4c6b4eSAlexander Hansen 111*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 112*6f4c6b4eSAlexander Hansen 113*6f4c6b4eSAlexander Hansen nlohmann::json expected = "3 mod 2 equals 1"; 114*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 115*6f4c6b4eSAlexander Hansen } 116*6f4c6b4eSAlexander Hansen 117*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, multiply) 118*6f4c6b4eSAlexander Hansen { 119*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "3 * 2 equals $TEST * 2"}}; 120*6f4c6b4eSAlexander Hansen auto it = j.begin(); 121*6f4c6b4eSAlexander Hansen DBusInterface data; 122*6f4c6b4eSAlexander Hansen data["TEST"] = 3; 123*6f4c6b4eSAlexander Hansen 124*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 125*6f4c6b4eSAlexander Hansen 126*6f4c6b4eSAlexander Hansen nlohmann::json expected = "3 * 2 equals 6"; 127*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 128*6f4c6b4eSAlexander Hansen } 129*6f4c6b4eSAlexander Hansen 130*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, divide) 131*6f4c6b4eSAlexander Hansen { 132*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2"}}; 133*6f4c6b4eSAlexander Hansen auto it = j.begin(); 134*6f4c6b4eSAlexander Hansen DBusInterface data; 135*6f4c6b4eSAlexander Hansen data["TEST"] = 4; 136*6f4c6b4eSAlexander Hansen 137*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 138*6f4c6b4eSAlexander Hansen 139*6f4c6b4eSAlexander Hansen nlohmann::json expected = "4 / 2 equals 2"; 140*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 141*6f4c6b4eSAlexander Hansen } 142*6f4c6b4eSAlexander Hansen 143*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, multiMath) 144*6f4c6b4eSAlexander Hansen { 145*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "4 * 2 % 6 equals $TEST * 2 % 6"}}; 146*6f4c6b4eSAlexander Hansen auto it = j.begin(); 147*6f4c6b4eSAlexander Hansen DBusInterface data; 148*6f4c6b4eSAlexander Hansen data["TEST"] = 4; 149*6f4c6b4eSAlexander Hansen 150*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 151*6f4c6b4eSAlexander Hansen 152*6f4c6b4eSAlexander Hansen nlohmann::json expected = "4 * 2 % 6 equals 2"; 153*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 154*6f4c6b4eSAlexander Hansen } 155*6f4c6b4eSAlexander Hansen 156*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacements) 157*6f4c6b4eSAlexander Hansen { 158*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "$FOO $BAR"}}; 159*6f4c6b4eSAlexander Hansen auto it = j.begin(); 160*6f4c6b4eSAlexander Hansen DBusInterface data; 161*6f4c6b4eSAlexander Hansen data["FOO"] = std::string("foo"); 162*6f4c6b4eSAlexander Hansen data["BAR"] = std::string("bar"); 163*6f4c6b4eSAlexander Hansen 164*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 165*6f4c6b4eSAlexander Hansen 166*6f4c6b4eSAlexander Hansen nlohmann::json expected = "foo bar"; 167*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 168*6f4c6b4eSAlexander Hansen } 169*6f4c6b4eSAlexander Hansen 170*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacementsWithMath) 171*6f4c6b4eSAlexander Hansen { 172*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "4 / 2 equals $TEST / 2 $BAR"}}; 173*6f4c6b4eSAlexander Hansen auto it = j.begin(); 174*6f4c6b4eSAlexander Hansen DBusInterface data; 175*6f4c6b4eSAlexander Hansen data["TEST"] = 4; 176*6f4c6b4eSAlexander Hansen data["BAR"] = std::string("bar"); 177*6f4c6b4eSAlexander Hansen 178*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 179*6f4c6b4eSAlexander Hansen 180*6f4c6b4eSAlexander Hansen nlohmann::json expected = "4 / 2 equals 2 bar"; 181*6f4c6b4eSAlexander Hansen } 182*6f4c6b4eSAlexander Hansen 183*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, twoReplacementsWithMath2) 184*6f4c6b4eSAlexander Hansen { 185*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "4 / 2 equals $ADDRESS / 2 $BAR"}}; 186*6f4c6b4eSAlexander Hansen auto it = j.begin(); 187*6f4c6b4eSAlexander Hansen DBusInterface data; 188*6f4c6b4eSAlexander Hansen data["ADDRESS"] = 4; 189*6f4c6b4eSAlexander Hansen data["BAR"] = std::string("bar"); 190*6f4c6b4eSAlexander Hansen 191*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 192*6f4c6b4eSAlexander Hansen 193*6f4c6b4eSAlexander Hansen nlohmann::json expected = "4 / 2 equals 2 bar"; 194*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 195*6f4c6b4eSAlexander Hansen } 196*6f4c6b4eSAlexander Hansen 197*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, hexAndWrongCase) 198*6f4c6b4eSAlexander Hansen { 199*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"Address", "0x54"}, 200*6f4c6b4eSAlexander Hansen {"Bus", 15}, 201*6f4c6b4eSAlexander Hansen {"Name", "$bus sensor 0"}, 202*6f4c6b4eSAlexander Hansen {"Type", "SomeType"}}; 203*6f4c6b4eSAlexander Hansen 204*6f4c6b4eSAlexander Hansen DBusInterface data; 205*6f4c6b4eSAlexander Hansen data["BUS"] = 15; 206*6f4c6b4eSAlexander Hansen 207*6f4c6b4eSAlexander Hansen for (auto it = j.begin(); it != j.end(); it++) 208*6f4c6b4eSAlexander Hansen { 209*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 210*6f4c6b4eSAlexander Hansen } 211*6f4c6b4eSAlexander Hansen nlohmann::json expected = {{"Address", 84}, 212*6f4c6b4eSAlexander Hansen {"Bus", 15}, 213*6f4c6b4eSAlexander Hansen {"Name", "15 sensor 0"}, 214*6f4c6b4eSAlexander Hansen {"Type", "SomeType"}}; 215*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j); 216*6f4c6b4eSAlexander Hansen } 217*6f4c6b4eSAlexander Hansen 218*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, replaceSecondAsInt) 219*6f4c6b4eSAlexander Hansen { 220*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "twelve is $TEST"}}; 221*6f4c6b4eSAlexander Hansen auto it = j.begin(); 222*6f4c6b4eSAlexander Hansen DBusInterface data; 223*6f4c6b4eSAlexander Hansen data["test"] = 12; 224*6f4c6b4eSAlexander Hansen 225*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 226*6f4c6b4eSAlexander Hansen 227*6f4c6b4eSAlexander Hansen nlohmann::json expected = "twelve is 12"; 228*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 229*6f4c6b4eSAlexander Hansen } 230*6f4c6b4eSAlexander Hansen 231*6f4c6b4eSAlexander Hansen TEST(TemplateCharReplace, singleHex) 232*6f4c6b4eSAlexander Hansen { 233*6f4c6b4eSAlexander Hansen nlohmann::json j = {{"foo", "0x54"}}; 234*6f4c6b4eSAlexander Hansen auto it = j.begin(); 235*6f4c6b4eSAlexander Hansen DBusInterface data; 236*6f4c6b4eSAlexander Hansen 237*6f4c6b4eSAlexander Hansen em_utils::templateCharReplace(it, data, 0); 238*6f4c6b4eSAlexander Hansen 239*6f4c6b4eSAlexander Hansen nlohmann::json expected = 84; 240*6f4c6b4eSAlexander Hansen EXPECT_EQ(expected, j["foo"]); 241*6f4c6b4eSAlexander Hansen } 242*6f4c6b4eSAlexander Hansen 243*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringEqString) 244*6f4c6b4eSAlexander Hansen { 245*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foo")"_json; 246*6f4c6b4eSAlexander Hansen DBusValueVariant v = "foo"s; 247*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 248*6f4c6b4eSAlexander Hansen } 249*6f4c6b4eSAlexander Hansen 250*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexEqString) 251*6f4c6b4eSAlexander Hansen { 252*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foo*")"_json; 253*6f4c6b4eSAlexander Hansen DBusValueVariant v = "foobar"s; 254*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 255*6f4c6b4eSAlexander Hansen } 256*6f4c6b4eSAlexander Hansen 257*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqString) 258*6f4c6b4eSAlexander Hansen { 259*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foobar")"_json; 260*6f4c6b4eSAlexander Hansen DBusValueVariant v = "foo"s; 261*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 262*6f4c6b4eSAlexander Hansen } 263*6f4c6b4eSAlexander Hansen 264*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexError) 265*6f4c6b4eSAlexander Hansen { 266*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foo[")"_json; 267*6f4c6b4eSAlexander Hansen DBusValueVariant v = "foobar"s; 268*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 269*6f4c6b4eSAlexander Hansen } 270*6f4c6b4eSAlexander Hansen 271*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexNotPrefix) 272*6f4c6b4eSAlexander Hansen { 273*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foo(?!bar)...foo")"_json; 274*6f4c6b4eSAlexander Hansen DBusValueVariant v1 = "foobarfoo"s; 275*6f4c6b4eSAlexander Hansen DBusValueVariant v2 = "foofoofoo"s; 276*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v1)); 277*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v2)); 278*6f4c6b4eSAlexander Hansen } 279*6f4c6b4eSAlexander Hansen 280*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringZeroNeqFalse) 281*6f4c6b4eSAlexander Hansen { 282*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("0")"_json; 283*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 284*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 285*6f4c6b4eSAlexander Hansen } 286*6f4c6b4eSAlexander Hansen 287*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringOneNeqTrue) 288*6f4c6b4eSAlexander Hansen { 289*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("1")"_json; 290*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 291*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 292*6f4c6b4eSAlexander Hansen } 293*6f4c6b4eSAlexander Hansen 294*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringElevenNeqTrue) 295*6f4c6b4eSAlexander Hansen { 296*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("11")"_json; 297*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 298*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 299*6f4c6b4eSAlexander Hansen } 300*6f4c6b4eSAlexander Hansen 301*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqFalse) 302*6f4c6b4eSAlexander Hansen { 303*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("false")"_json; 304*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 305*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 306*6f4c6b4eSAlexander Hansen } 307*6f4c6b4eSAlexander Hansen 308*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringTrueNeqTrue) 309*6f4c6b4eSAlexander Hansen { 310*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("true")"_json; 311*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 312*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 313*6f4c6b4eSAlexander Hansen } 314*6f4c6b4eSAlexander Hansen 315*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqTrue) 316*6f4c6b4eSAlexander Hansen { 317*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("false")"_json; 318*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 319*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 320*6f4c6b4eSAlexander Hansen } 321*6f4c6b4eSAlexander Hansen 322*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint8) 323*6f4c6b4eSAlexander Hansen { 324*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("255")"_json; 325*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(255); 326*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 327*6f4c6b4eSAlexander Hansen } 328*6f4c6b4eSAlexander Hansen 329*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint8Overflow) 330*6f4c6b4eSAlexander Hansen { 331*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("65535")"_json; 332*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(255); 333*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 334*6f4c6b4eSAlexander Hansen } 335*6f4c6b4eSAlexander Hansen 336*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringFalseNeqUint8Zero) 337*6f4c6b4eSAlexander Hansen { 338*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("false")"_json; 339*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(0); 340*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 341*6f4c6b4eSAlexander Hansen } 342*6f4c6b4eSAlexander Hansen 343*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringTrueNeqUint8Zero) 344*6f4c6b4eSAlexander Hansen { 345*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("true")"_json; 346*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(1); 347*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 348*6f4c6b4eSAlexander Hansen } 349*6f4c6b4eSAlexander Hansen 350*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint32) 351*6f4c6b4eSAlexander Hansen { 352*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("11")"_json; 353*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint32_t(11); 354*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 355*6f4c6b4eSAlexander Hansen } 356*6f4c6b4eSAlexander Hansen 357*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqInt32) 358*6f4c6b4eSAlexander Hansen { 359*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("-11")"_json; 360*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-11); 361*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 362*6f4c6b4eSAlexander Hansen } 363*6f4c6b4eSAlexander Hansen 364*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringRegexNeqInt32) 365*6f4c6b4eSAlexander Hansen { 366*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("1*4")"_json; 367*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(124); 368*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 369*6f4c6b4eSAlexander Hansen } 370*6f4c6b4eSAlexander Hansen 371*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqUint64) 372*6f4c6b4eSAlexander Hansen { 373*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("foo")"_json; 374*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint64_t(65535); 375*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 376*6f4c6b4eSAlexander Hansen } 377*6f4c6b4eSAlexander Hansen 378*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqDouble) 379*6f4c6b4eSAlexander Hansen { 380*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("123.4")"_json; 381*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(123.4); 382*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 383*6f4c6b4eSAlexander Hansen } 384*6f4c6b4eSAlexander Hansen 385*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqEmpty) 386*6f4c6b4eSAlexander Hansen { 387*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("-123.4")"_json; 388*6f4c6b4eSAlexander Hansen DBusValueVariant v; 389*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 390*6f4c6b4eSAlexander Hansen } 391*6f4c6b4eSAlexander Hansen 392*6f4c6b4eSAlexander Hansen TEST(MatchProbe, stringNeqArray) 393*6f4c6b4eSAlexander Hansen { 394*6f4c6b4eSAlexander Hansen nlohmann::json j = R"("-123.4")"_json; 395*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2}; 396*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 397*6f4c6b4eSAlexander Hansen } 398*6f4c6b4eSAlexander Hansen 399*6f4c6b4eSAlexander Hansen TEST(MatchProbe, boolNeqString) 400*6f4c6b4eSAlexander Hansen { 401*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 402*6f4c6b4eSAlexander Hansen DBusValueVariant v = "false"s; 403*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 404*6f4c6b4eSAlexander Hansen } 405*6f4c6b4eSAlexander Hansen 406*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueEqTrue) 407*6f4c6b4eSAlexander Hansen { 408*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 409*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 410*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 411*6f4c6b4eSAlexander Hansen } 412*6f4c6b4eSAlexander Hansen 413*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseEqFalse) 414*6f4c6b4eSAlexander Hansen { 415*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 416*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 417*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 418*6f4c6b4eSAlexander Hansen } 419*6f4c6b4eSAlexander Hansen 420*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqFalse) 421*6f4c6b4eSAlexander Hansen { 422*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 423*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 424*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 425*6f4c6b4eSAlexander Hansen } 426*6f4c6b4eSAlexander Hansen 427*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqInt32Zero) 428*6f4c6b4eSAlexander Hansen { 429*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 430*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(0); 431*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 432*6f4c6b4eSAlexander Hansen } 433*6f4c6b4eSAlexander Hansen 434*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqInt32NegativeOne) 435*6f4c6b4eSAlexander Hansen { 436*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 437*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-1); 438*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 439*6f4c6b4eSAlexander Hansen } 440*6f4c6b4eSAlexander Hansen 441*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqUint32One) 442*6f4c6b4eSAlexander Hansen { 443*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 444*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint32_t(1); 445*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 446*6f4c6b4eSAlexander Hansen } 447*6f4c6b4eSAlexander Hansen 448*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqUint32Zero) 449*6f4c6b4eSAlexander Hansen { 450*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 451*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint32_t(0); 452*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 453*6f4c6b4eSAlexander Hansen } 454*6f4c6b4eSAlexander Hansen 455*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqDoubleNegativeOne) 456*6f4c6b4eSAlexander Hansen { 457*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 458*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-1.1); 459*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 460*6f4c6b4eSAlexander Hansen } 461*6f4c6b4eSAlexander Hansen 462*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqDoubleOne) 463*6f4c6b4eSAlexander Hansen { 464*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 465*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(1.0); 466*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 467*6f4c6b4eSAlexander Hansen } 468*6f4c6b4eSAlexander Hansen 469*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqDoubleOne) 470*6f4c6b4eSAlexander Hansen { 471*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 472*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(1.0); 473*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 474*6f4c6b4eSAlexander Hansen } 475*6f4c6b4eSAlexander Hansen 476*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqDoubleZero) 477*6f4c6b4eSAlexander Hansen { 478*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 479*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(0.0); 480*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 481*6f4c6b4eSAlexander Hansen } 482*6f4c6b4eSAlexander Hansen 483*6f4c6b4eSAlexander Hansen TEST(MatchProbe, falseNeqEmpty) 484*6f4c6b4eSAlexander Hansen { 485*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(false)"_json; 486*6f4c6b4eSAlexander Hansen DBusValueVariant v; 487*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 488*6f4c6b4eSAlexander Hansen } 489*6f4c6b4eSAlexander Hansen 490*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqEmpty) 491*6f4c6b4eSAlexander Hansen { 492*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 493*6f4c6b4eSAlexander Hansen DBusValueVariant v; 494*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 495*6f4c6b4eSAlexander Hansen } 496*6f4c6b4eSAlexander Hansen 497*6f4c6b4eSAlexander Hansen TEST(MatchProbe, trueNeqArray) 498*6f4c6b4eSAlexander Hansen { 499*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(true)"_json; 500*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2}; 501*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 502*6f4c6b4eSAlexander Hansen } 503*6f4c6b4eSAlexander Hansen 504*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqString) 505*6f4c6b4eSAlexander Hansen { 506*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 507*6f4c6b4eSAlexander Hansen DBusValueVariant v = "11"s; 508*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 509*6f4c6b4eSAlexander Hansen } 510*6f4c6b4eSAlexander Hansen 511*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqTrue) 512*6f4c6b4eSAlexander Hansen { 513*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(1)"_json; 514*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 515*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 516*6f4c6b4eSAlexander Hansen } 517*6f4c6b4eSAlexander Hansen 518*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqFalse) 519*6f4c6b4eSAlexander Hansen { 520*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(0)"_json; 521*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 522*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 523*6f4c6b4eSAlexander Hansen } 524*6f4c6b4eSAlexander Hansen 525*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqUint8) 526*6f4c6b4eSAlexander Hansen { 527*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 528*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(11); 529*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 530*6f4c6b4eSAlexander Hansen } 531*6f4c6b4eSAlexander Hansen 532*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqUint8) 533*6f4c6b4eSAlexander Hansen { 534*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 535*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(12); 536*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 537*6f4c6b4eSAlexander Hansen } 538*6f4c6b4eSAlexander Hansen 539*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqUint8Overflow) 540*6f4c6b4eSAlexander Hansen { 541*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(65535)"_json; 542*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(255); 543*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 544*6f4c6b4eSAlexander Hansen } 545*6f4c6b4eSAlexander Hansen 546*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqInt8) 547*6f4c6b4eSAlexander Hansen { 548*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 549*6f4c6b4eSAlexander Hansen DBusValueVariant v = int8_t(11); 550*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 551*6f4c6b4eSAlexander Hansen } 552*6f4c6b4eSAlexander Hansen 553*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintEqDouble) 554*6f4c6b4eSAlexander Hansen { 555*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 556*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(11.0); 557*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 558*6f4c6b4eSAlexander Hansen } 559*6f4c6b4eSAlexander Hansen 560*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqDouble) 561*6f4c6b4eSAlexander Hansen { 562*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 563*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(11.7); 564*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 565*6f4c6b4eSAlexander Hansen } 566*6f4c6b4eSAlexander Hansen 567*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqEmpty) 568*6f4c6b4eSAlexander Hansen { 569*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 570*6f4c6b4eSAlexander Hansen DBusValueVariant v; 571*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 572*6f4c6b4eSAlexander Hansen } 573*6f4c6b4eSAlexander Hansen 574*6f4c6b4eSAlexander Hansen TEST(MatchProbe, uintNeqArray) 575*6f4c6b4eSAlexander Hansen { 576*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(11)"_json; 577*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{11}; 578*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 579*6f4c6b4eSAlexander Hansen } 580*6f4c6b4eSAlexander Hansen 581*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqString) 582*6f4c6b4eSAlexander Hansen { 583*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 584*6f4c6b4eSAlexander Hansen DBusValueVariant v = "-11"s; 585*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 586*6f4c6b4eSAlexander Hansen } 587*6f4c6b4eSAlexander Hansen 588*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqTrue) 589*6f4c6b4eSAlexander Hansen { 590*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-1)"_json; 591*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 592*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 593*6f4c6b4eSAlexander Hansen } 594*6f4c6b4eSAlexander Hansen 595*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqUint8) 596*6f4c6b4eSAlexander Hansen { 597*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 598*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(11); 599*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 600*6f4c6b4eSAlexander Hansen } 601*6f4c6b4eSAlexander Hansen 602*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intEqInt8) 603*6f4c6b4eSAlexander Hansen { 604*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 605*6f4c6b4eSAlexander Hansen DBusValueVariant v = int8_t(-11); 606*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 607*6f4c6b4eSAlexander Hansen } 608*6f4c6b4eSAlexander Hansen 609*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqDouble) 610*6f4c6b4eSAlexander Hansen { 611*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-124)"_json; 612*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-123.0); 613*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 614*6f4c6b4eSAlexander Hansen } 615*6f4c6b4eSAlexander Hansen 616*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intEqDouble) 617*6f4c6b4eSAlexander Hansen { 618*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 619*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-11.0); 620*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 621*6f4c6b4eSAlexander Hansen } 622*6f4c6b4eSAlexander Hansen 623*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqDoubleRound) 624*6f4c6b4eSAlexander Hansen { 625*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 626*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-11.7); 627*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 628*6f4c6b4eSAlexander Hansen } 629*6f4c6b4eSAlexander Hansen 630*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqEmpty) 631*6f4c6b4eSAlexander Hansen { 632*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 633*6f4c6b4eSAlexander Hansen DBusValueVariant v; 634*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 635*6f4c6b4eSAlexander Hansen } 636*6f4c6b4eSAlexander Hansen 637*6f4c6b4eSAlexander Hansen TEST(MatchProbe, intNeqArray) 638*6f4c6b4eSAlexander Hansen { 639*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11)"_json; 640*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{11}; 641*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 642*6f4c6b4eSAlexander Hansen } 643*6f4c6b4eSAlexander Hansen 644*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqString) 645*6f4c6b4eSAlexander Hansen { 646*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(0.0)"_json; 647*6f4c6b4eSAlexander Hansen DBusValueVariant v = "0.0"s; 648*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 649*6f4c6b4eSAlexander Hansen } 650*6f4c6b4eSAlexander Hansen 651*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqFalse) 652*6f4c6b4eSAlexander Hansen { 653*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(0.0)"_json; 654*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 655*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 656*6f4c6b4eSAlexander Hansen } 657*6f4c6b4eSAlexander Hansen 658*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqTrue) 659*6f4c6b4eSAlexander Hansen { 660*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(1.0)"_json; 661*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 662*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 663*6f4c6b4eSAlexander Hansen } 664*6f4c6b4eSAlexander Hansen 665*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleEqInt32) 666*6f4c6b4eSAlexander Hansen { 667*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-124.0)"_json; 668*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-124); 669*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 670*6f4c6b4eSAlexander Hansen } 671*6f4c6b4eSAlexander Hansen 672*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqInt32) 673*6f4c6b4eSAlexander Hansen { 674*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-124.0)"_json; 675*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-123); 676*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 677*6f4c6b4eSAlexander Hansen } 678*6f4c6b4eSAlexander Hansen 679*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleRoundNeqInt) 680*6f4c6b4eSAlexander Hansen { 681*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(124.7)"_json; 682*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(124); 683*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 684*6f4c6b4eSAlexander Hansen } 685*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleEqDouble) 686*6f4c6b4eSAlexander Hansen { 687*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-124.2)"_json; 688*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-124.2); 689*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 690*6f4c6b4eSAlexander Hansen } 691*6f4c6b4eSAlexander Hansen 692*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqDouble) 693*6f4c6b4eSAlexander Hansen { 694*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-124.3)"_json; 695*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(-124.2); 696*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 697*6f4c6b4eSAlexander Hansen } 698*6f4c6b4eSAlexander Hansen 699*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqEmpty) 700*6f4c6b4eSAlexander Hansen { 701*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11.0)"_json; 702*6f4c6b4eSAlexander Hansen DBusValueVariant v; 703*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 704*6f4c6b4eSAlexander Hansen } 705*6f4c6b4eSAlexander Hansen 706*6f4c6b4eSAlexander Hansen TEST(MatchProbe, doubleNeqArray) 707*6f4c6b4eSAlexander Hansen { 708*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(-11.2)"_json; 709*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{11}; 710*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 711*6f4c6b4eSAlexander Hansen } 712*6f4c6b4eSAlexander Hansen 713*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqString) 714*6f4c6b4eSAlexander Hansen { 715*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 716*6f4c6b4eSAlexander Hansen DBusValueVariant v = "hello"s; 717*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 718*6f4c6b4eSAlexander Hansen } 719*6f4c6b4eSAlexander Hansen 720*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqFalse) 721*6f4c6b4eSAlexander Hansen { 722*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 723*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 724*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 725*6f4c6b4eSAlexander Hansen } 726*6f4c6b4eSAlexander Hansen 727*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqTrue) 728*6f4c6b4eSAlexander Hansen { 729*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 730*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 731*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 732*6f4c6b4eSAlexander Hansen } 733*6f4c6b4eSAlexander Hansen 734*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqUint8) 735*6f4c6b4eSAlexander Hansen { 736*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 737*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(1); 738*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 739*6f4c6b4eSAlexander Hansen } 740*6f4c6b4eSAlexander Hansen 741*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqInt32) 742*6f4c6b4eSAlexander Hansen { 743*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 744*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-1); 745*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 746*6f4c6b4eSAlexander Hansen } 747*6f4c6b4eSAlexander Hansen 748*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqDouble) 749*6f4c6b4eSAlexander Hansen { 750*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 751*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(1.1); 752*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 753*6f4c6b4eSAlexander Hansen } 754*6f4c6b4eSAlexander Hansen 755*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayEqArray) 756*6f4c6b4eSAlexander Hansen { 757*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 758*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2}; 759*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 760*6f4c6b4eSAlexander Hansen } 761*6f4c6b4eSAlexander Hansen 762*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqArrayDiffSize1) 763*6f4c6b4eSAlexander Hansen { 764*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2, 3])"_json; 765*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2}; 766*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 767*6f4c6b4eSAlexander Hansen } 768*6f4c6b4eSAlexander Hansen 769*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqArrayDiffSize2) 770*6f4c6b4eSAlexander Hansen { 771*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1, 2])"_json; 772*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2, 3}; 773*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 774*6f4c6b4eSAlexander Hansen } 775*6f4c6b4eSAlexander Hansen 776*6f4c6b4eSAlexander Hansen TEST(MatchProbe, emptyArrayEqEmptyArray) 777*6f4c6b4eSAlexander Hansen { 778*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([])"_json; 779*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{}; 780*6f4c6b4eSAlexander Hansen EXPECT_TRUE(matchProbe(j, v)); 781*6f4c6b4eSAlexander Hansen } 782*6f4c6b4eSAlexander Hansen 783*6f4c6b4eSAlexander Hansen TEST(MatchProbe, emptyArrayNeqArray) 784*6f4c6b4eSAlexander Hansen { 785*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([])"_json; 786*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1}; 787*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 788*6f4c6b4eSAlexander Hansen } 789*6f4c6b4eSAlexander Hansen 790*6f4c6b4eSAlexander Hansen TEST(MatchProbe, arrayNeqEmptyArray) 791*6f4c6b4eSAlexander Hansen { 792*6f4c6b4eSAlexander Hansen nlohmann::json j = R"([1])"_json; 793*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{}; 794*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 795*6f4c6b4eSAlexander Hansen } 796*6f4c6b4eSAlexander Hansen 797*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqString) 798*6f4c6b4eSAlexander Hansen { 799*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 800*6f4c6b4eSAlexander Hansen DBusValueVariant v = "hello"s; 801*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 802*6f4c6b4eSAlexander Hansen } 803*6f4c6b4eSAlexander Hansen 804*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqFalse) 805*6f4c6b4eSAlexander Hansen { 806*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 807*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 808*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 809*6f4c6b4eSAlexander Hansen } 810*6f4c6b4eSAlexander Hansen 811*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqTrue) 812*6f4c6b4eSAlexander Hansen { 813*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 814*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 815*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 816*6f4c6b4eSAlexander Hansen } 817*6f4c6b4eSAlexander Hansen 818*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqUint8) 819*6f4c6b4eSAlexander Hansen { 820*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 821*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(1); 822*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 823*6f4c6b4eSAlexander Hansen } 824*6f4c6b4eSAlexander Hansen 825*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqInt32) 826*6f4c6b4eSAlexander Hansen { 827*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 828*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-1); 829*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 830*6f4c6b4eSAlexander Hansen } 831*6f4c6b4eSAlexander Hansen 832*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqDouble) 833*6f4c6b4eSAlexander Hansen { 834*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 835*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(1.1); 836*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 837*6f4c6b4eSAlexander Hansen } 838*6f4c6b4eSAlexander Hansen 839*6f4c6b4eSAlexander Hansen TEST(MatchProbe, objNeqArray) 840*6f4c6b4eSAlexander Hansen { 841*6f4c6b4eSAlexander Hansen nlohmann::json j = R"({"foo": "bar"})"_json; 842*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{1, 2}; 843*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 844*6f4c6b4eSAlexander Hansen } 845*6f4c6b4eSAlexander Hansen 846*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqString) 847*6f4c6b4eSAlexander Hansen { 848*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 849*6f4c6b4eSAlexander Hansen DBusValueVariant v = "hello"s; 850*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 851*6f4c6b4eSAlexander Hansen } 852*6f4c6b4eSAlexander Hansen 853*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqFalse) 854*6f4c6b4eSAlexander Hansen { 855*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 856*6f4c6b4eSAlexander Hansen DBusValueVariant v = false; 857*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 858*6f4c6b4eSAlexander Hansen } 859*6f4c6b4eSAlexander Hansen 860*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqTrue) 861*6f4c6b4eSAlexander Hansen { 862*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 863*6f4c6b4eSAlexander Hansen DBusValueVariant v = true; 864*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 865*6f4c6b4eSAlexander Hansen } 866*6f4c6b4eSAlexander Hansen 867*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqUint8) 868*6f4c6b4eSAlexander Hansen { 869*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 870*6f4c6b4eSAlexander Hansen DBusValueVariant v = uint8_t(1); 871*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 872*6f4c6b4eSAlexander Hansen } 873*6f4c6b4eSAlexander Hansen 874*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqInt32) 875*6f4c6b4eSAlexander Hansen { 876*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 877*6f4c6b4eSAlexander Hansen DBusValueVariant v = int32_t(-1); 878*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 879*6f4c6b4eSAlexander Hansen } 880*6f4c6b4eSAlexander Hansen 881*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqDouble) 882*6f4c6b4eSAlexander Hansen { 883*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 884*6f4c6b4eSAlexander Hansen DBusValueVariant v = double(1.1); 885*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 886*6f4c6b4eSAlexander Hansen } 887*6f4c6b4eSAlexander Hansen 888*6f4c6b4eSAlexander Hansen TEST(MatchProbe, nullNeqArray) 889*6f4c6b4eSAlexander Hansen { 890*6f4c6b4eSAlexander Hansen nlohmann::json j = R"(null)"_json; 891*6f4c6b4eSAlexander Hansen DBusValueVariant v = std::vector<uint8_t>{}; 892*6f4c6b4eSAlexander Hansen EXPECT_FALSE(matchProbe(j, v)); 893*6f4c6b4eSAlexander Hansen } 894