improve test, fix bug in stateEvaluator

pull/135/head
Michael Zanetti 2015-01-03 16:36:01 +01:00 committed by Michael Zanetti
parent d396cd16d2
commit 5cbe613a3e
3 changed files with 8 additions and 8 deletions

View File

@ -156,14 +156,11 @@ StateEvaluator StateEvaluator::loadFromSettings(QSettings &settings, const QStri
settings.endGroup();
StateEvaluator ret(stateDescriptor);
ret.setOperatorType((Types::StateOperator)settings.value("operator").toInt());
settings.beginGroup("childEvaluators");
foreach (const QString &evaluatorGroup, settings.childGroups()) {
settings.beginGroup(evaluatorGroup);
ret.appendEvaluator(StateEvaluator::loadFromSettings(settings, evaluatorGroup));
settings.endGroup();
}
settings.endGroup();
settings.endGroup();

View File

@ -28,6 +28,7 @@
#include <QSettings>
#include <QtTest>
#include <QMetaType>
#include <QNetworkReply>
PluginId mockPluginId = PluginId("727a4a9a-c187-446f-aadf-f1b2220607d1");
VendorId guhVendorId = VendorId("2062d64d-3232-433c-88bc-0d33c0ba2ba6");
@ -51,6 +52,7 @@ GuhTestBase::GuhTestBase(QObject *parent) :
QObject(parent),
m_commandId(0)
{
qRegisterMetaType<QNetworkReply*>();
qsrand(QDateTime::currentMSecsSinceEpoch());
m_mockDevice1Port = 1337 + (qrand() % 1000);
m_mockDevice2Port = 7331 + (qrand() % 1000);

View File

@ -361,6 +361,7 @@ void TestRules::loadStoreConfig()
actions.append(action2);
params.insert("actions", actions);
params.insert("eventDescriptorList", eventDescriptorList);
params.insert("stateEvaluator", stateEvaluator1);
QVariant response = injectAndWait("Rules.AddRule", params);
RuleId newRuleId = RuleId(response.toMap().value("params").toMap().value("ruleId").toString());
@ -399,12 +400,12 @@ void TestRules::loadStoreConfig()
QVariantList replyChildEvaluators = replyStateEvaluator.value("childEvaluators").toList();
QVERIFY2(replyStateEvaluator.value("operator") == "StateOperatorAnd", "There should be the AND operator.");
QVERIFY2(replyChildEvaluators.count() == 2, "There shoud be exactly 2 childEvaluators");
foreach (const QVariant &childEvaluator, replyChildEvaluators) {
if (childEvaluator.toMap().contains("stateDescriptor")) {
QVariantMap stateDescriptor = childEvaluator.toMap().value("stateDescriptor").toMap();
QVERIFY2(stateDescriptor.value("deviceId") == m_mockDeviceId, "DeviceId of stateDescriptor does not match");
QVERIFY2(stateDescriptor.value("stateTypeId") == mockIntStateId || stateDescriptor.value("stateTypeId") == mockBoolStateId, "StateTypeId of stateDescriptor doesn't match");
}
QVERIFY2(childEvaluator.toMap().contains("stateDescriptor"), "StateDescriptor missing in StateEvaluator");
QVariantMap stateDescriptor = childEvaluator.toMap().value("stateDescriptor").toMap();
QVERIFY2(stateDescriptor.value("deviceId") == m_mockDeviceId, "DeviceId of stateDescriptor does not match");
QVERIFY2(stateDescriptor.value("stateTypeId") == mockIntStateId || stateDescriptor.value("stateTypeId") == mockBoolStateId, "StateTypeId of stateDescriptor doesn't match");
}
QVariantList replyActions = rule.value("actions").toList();