xref: /openbmc/entity-manager/test/entity_manager/test_entity-manager.cpp (revision 6f4c6b4e7cbc7401d47f2bd15f6bbaf2b85ac083)
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