fix packing rules for interface based events and actions
This commit is contained in:
parent
8cdc5b4770
commit
84854868ea
@ -557,8 +557,13 @@ QVariantMap JsonTypes::packAction(const Action &action)
|
|||||||
QVariantMap JsonTypes::packRuleAction(const RuleAction &ruleAction)
|
QVariantMap JsonTypes::packRuleAction(const RuleAction &ruleAction)
|
||||||
{
|
{
|
||||||
QVariantMap variant;
|
QVariantMap variant;
|
||||||
variant.insert("actionTypeId", ruleAction.actionTypeId());
|
if (ruleAction.type() == RuleAction::TypeDevice) {
|
||||||
variant.insert("deviceId", ruleAction.deviceId());
|
variant.insert("actionTypeId", ruleAction.actionTypeId());
|
||||||
|
variant.insert("deviceId", ruleAction.deviceId());
|
||||||
|
} else {
|
||||||
|
variant.insert("interface", ruleAction.interface());
|
||||||
|
variant.insert("interfaceAction", ruleAction.interfaceAction());
|
||||||
|
}
|
||||||
QVariantList params;
|
QVariantList params;
|
||||||
foreach (const RuleActionParam &ruleActionParam, ruleAction.ruleActionParams())
|
foreach (const RuleActionParam &ruleActionParam, ruleAction.ruleActionParams())
|
||||||
params.append(packRuleActionParam(ruleActionParam));
|
params.append(packRuleActionParam(ruleActionParam));
|
||||||
|
|||||||
@ -2165,6 +2165,20 @@ void TestRules::testInterfaceBasedRule()
|
|||||||
addRuleParams.insert("eventDescriptors", QVariantList() << lowBatteryEvent);
|
addRuleParams.insert("eventDescriptors", QVariantList() << lowBatteryEvent);
|
||||||
|
|
||||||
QVariant response = injectAndWait("Rules.AddRule", addRuleParams);
|
QVariant response = injectAndWait("Rules.AddRule", addRuleParams);
|
||||||
|
QCOMPARE(response.toMap().value("status").toString(), QString("success"));
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("ruleError").toString(), QString("RuleErrorNoError"));
|
||||||
|
|
||||||
|
QVariantMap getRuleParams;
|
||||||
|
getRuleParams.insert("ruleId", response.toMap().value("params").toMap().value("ruleId"));
|
||||||
|
response = injectAndWait("Rules.GetRuleDetails", getRuleParams);
|
||||||
|
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("ruleError").toString(), QString("RuleErrorNoError"));
|
||||||
|
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("rule").toMap().value("eventDescriptors").toList().first().toMap().value("interface").toString(), QString("battery"));
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("rule").toMap().value("eventDescriptors").toList().first().toMap().value("interfaceEvent").toString(), QString("batteryCritical"));
|
||||||
|
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("rule").toMap().value("actions").toList().first().toMap().value("interface").toString(), QString("light"));
|
||||||
|
QCOMPARE(response.toMap().value("params").toMap().value("rule").toMap().value("actions").toList().first().toMap().value("interfaceAction").toString(), QString("power"));
|
||||||
|
|
||||||
|
|
||||||
// Change the state
|
// Change the state
|
||||||
@ -2179,7 +2193,7 @@ void TestRules::testInterfaceBasedRule()
|
|||||||
QCOMPARE(spy.count(), 1);
|
QCOMPARE(spy.count(), 1);
|
||||||
reply->deleteLater();
|
reply->deleteLater();
|
||||||
|
|
||||||
qDebug() << "response" << response;
|
verifyRuleExecuted(mockActionIdPower);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestRules::testHousekeeping_data()
|
void TestRules::testHousekeeping_data()
|
||||||
|
|||||||
Reference in New Issue
Block a user