fix eventdescriptor's paramdescriptors handling
This commit is contained in:
parent
ddebe2d0b4
commit
d2f02d650b
@ -591,6 +591,12 @@ QPair<bool, QString> JsonTypes::validateVariant(const QVariant &templateVariant,
|
|||||||
if (!variant.canConvert(QVariant::Map)) {
|
if (!variant.canConvert(QVariant::Map)) {
|
||||||
report(false, "Param not valid. Should be a map.");
|
report(false, "Param not valid. Should be a map.");
|
||||||
}
|
}
|
||||||
|
} else if (refName == paramDescriptorRef()) {
|
||||||
|
QPair<bool, QString> result = validateMap(paramDescriptorDescription(), variant.toMap());
|
||||||
|
if (!result.first) {
|
||||||
|
qDebug() << "ParamDescriptor not valid";
|
||||||
|
return result;
|
||||||
|
}
|
||||||
} else if (refName == deviceRef()) {
|
} else if (refName == deviceRef()) {
|
||||||
QPair<bool, QString> result = validateMap(deviceDescription(), variant.toMap());
|
QPair<bool, QString> result = validateMap(deviceDescription(), variant.toMap());
|
||||||
if (!result.first) {
|
if (!result.first) {
|
||||||
|
|||||||
@ -64,9 +64,11 @@ void TestRules::addRules_data()
|
|||||||
validEventDescriptor2.insert("deviceId", m_mockDeviceId);
|
validEventDescriptor2.insert("deviceId", m_mockDeviceId);
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
QVariantMap param1;
|
QVariantMap param1;
|
||||||
param1.insert("mockParamInt", 3);
|
param1.insert("name", "mockParamInt");
|
||||||
|
param1.insert("value", 3);
|
||||||
|
param1.insert("operator", "OperatorTypeEquals");
|
||||||
params.append(param1);
|
params.append(param1);
|
||||||
validEventDescriptor2.insert("paramDescriptors", param1);
|
validEventDescriptor2.insert("paramDescriptors", params);
|
||||||
|
|
||||||
QVariantList eventDescriptorList;
|
QVariantList eventDescriptorList;
|
||||||
eventDescriptorList.append(validEventDescriptor1);
|
eventDescriptorList.append(validEventDescriptor1);
|
||||||
@ -172,10 +174,16 @@ void TestRules::loadStoreConfig()
|
|||||||
eventDescriptor2.insert("paramDescriptors", QVariantList());
|
eventDescriptor2.insert("paramDescriptors", QVariantList());
|
||||||
QVariantList eventParamDescriptors;
|
QVariantList eventParamDescriptors;
|
||||||
QVariantMap eventParam1;
|
QVariantMap eventParam1;
|
||||||
eventParam1.insert("mockParamInt", 3);
|
eventParam1.insert("name", "mockParamInt");
|
||||||
|
eventParam1.insert("value", 3);
|
||||||
|
eventParam1.insert("operator", "OperatorTypeEquals");
|
||||||
eventParamDescriptors.append(eventParam1);
|
eventParamDescriptors.append(eventParam1);
|
||||||
eventDescriptor2.insert("paramDescriptors", eventParamDescriptors);
|
eventDescriptor2.insert("paramDescriptors", eventParamDescriptors);
|
||||||
|
|
||||||
|
QVariantList eventDescriptorList;
|
||||||
|
eventDescriptorList.append(eventDescriptor1);
|
||||||
|
eventDescriptorList.append(eventDescriptor2);
|
||||||
|
|
||||||
QVariantMap action1;
|
QVariantMap action1;
|
||||||
action1.insert("actionTypeId", mockActionIdNoParams);
|
action1.insert("actionTypeId", mockActionIdNoParams);
|
||||||
action1.insert("deviceId", m_mockDeviceId);
|
action1.insert("deviceId", m_mockDeviceId);
|
||||||
@ -200,7 +208,7 @@ void TestRules::loadStoreConfig()
|
|||||||
actions.append(action1);
|
actions.append(action1);
|
||||||
actions.append(action2);
|
actions.append(action2);
|
||||||
params.insert("actions", actions);
|
params.insert("actions", actions);
|
||||||
params.insert("eventDescriptor", eventDescriptor1);
|
params.insert("eventDescriptorList", eventDescriptorList);
|
||||||
QVariant response = injectAndWait("Rules.AddRule", params);
|
QVariant response = injectAndWait("Rules.AddRule", params);
|
||||||
|
|
||||||
RuleId newRuleId = RuleId(response.toMap().value("params").toMap().value("ruleId").toString());
|
RuleId newRuleId = RuleId(response.toMap().value("params").toMap().value("ruleId").toString());
|
||||||
@ -216,8 +224,18 @@ void TestRules::loadStoreConfig()
|
|||||||
QCOMPARE(RuleId(rules.first().toMap().value("id").toString()), newRuleId);
|
QCOMPARE(RuleId(rules.first().toMap().value("id").toString()), newRuleId);
|
||||||
|
|
||||||
QVariantList eventDescriptors = rules.first().toMap().value("eventDescriptors").toList();
|
QVariantList eventDescriptors = rules.first().toMap().value("eventDescriptors").toList();
|
||||||
QVERIFY2(eventDescriptors.count() == 1, "There shoud be exactly one eventDescriptor");
|
QVERIFY2(eventDescriptors.count() == 2, "There shoud be exactly 2 eventDescriptors");
|
||||||
QVERIFY2(eventDescriptors.first().toMap() == eventDescriptor1, "Event descriptor doesn't match");
|
foreach (const QVariant &expectedEventDescriptorVariant, eventDescriptorList) {
|
||||||
|
bool found = false;
|
||||||
|
foreach (const QVariant &replyEventDescriptorVariant, eventDescriptors) {
|
||||||
|
if (expectedEventDescriptorVariant.toMap().value("eventTypeId") == replyEventDescriptorVariant.toMap().value("eventTypeId") &&
|
||||||
|
expectedEventDescriptorVariant.toMap().value("deviceId") == replyEventDescriptorVariant.toMap().value("deviceId")) {
|
||||||
|
found = true;
|
||||||
|
QVERIFY2(replyEventDescriptorVariant == expectedEventDescriptorVariant, "EventDescriptor doesn't match");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
QVERIFY2(found, "missing eventdescriptor");
|
||||||
|
}
|
||||||
|
|
||||||
QVariantList replyActions = rules.first().toMap().value("actions").toList();
|
QVariantList replyActions = rules.first().toMap().value("actions").toList();
|
||||||
foreach (const QVariant &actionVariant, actions) {
|
foreach (const QVariant &actionVariant, actions) {
|
||||||
|
|||||||
Reference in New Issue
Block a user