mirror of https://github.com/nymea/nymea.git
improve test, fix bug in stateEvaluator
parent
d396cd16d2
commit
5cbe613a3e
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue