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 variant;
|
||||
variant.insert("actionTypeId", ruleAction.actionTypeId());
|
||||
variant.insert("deviceId", ruleAction.deviceId());
|
||||
if (ruleAction.type() == RuleAction::TypeDevice) {
|
||||
variant.insert("actionTypeId", ruleAction.actionTypeId());
|
||||
variant.insert("deviceId", ruleAction.deviceId());
|
||||
} else {
|
||||
variant.insert("interface", ruleAction.interface());
|
||||
variant.insert("interfaceAction", ruleAction.interfaceAction());
|
||||
}
|
||||
QVariantList params;
|
||||
foreach (const RuleActionParam &ruleActionParam, ruleAction.ruleActionParams())
|
||||
params.append(packRuleActionParam(ruleActionParam));
|
||||
|
||||
@ -2165,6 +2165,20 @@ void TestRules::testInterfaceBasedRule()
|
||||
addRuleParams.insert("eventDescriptors", QVariantList() << lowBatteryEvent);
|
||||
|
||||
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
|
||||
@ -2179,7 +2193,7 @@ void TestRules::testInterfaceBasedRule()
|
||||
QCOMPARE(spy.count(), 1);
|
||||
reply->deleteLater();
|
||||
|
||||
qDebug() << "response" << response;
|
||||
verifyRuleExecuted(mockActionIdPower);
|
||||
}
|
||||
|
||||
void TestRules::testHousekeeping_data()
|
||||
|
||||
Reference in New Issue
Block a user