From 5cbe613a3e00b15b3a7404de4e80540bb2c2bfbd Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Sat, 3 Jan 2015 16:36:01 +0100 Subject: [PATCH] improve test, fix bug in stateEvaluator --- server/stateevaluator.cpp | 3 --- tests/auto/guhtestbase.cpp | 2 ++ tests/auto/rules/testrules.cpp | 11 ++++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/stateevaluator.cpp b/server/stateevaluator.cpp index e177d2c3..0a43a12f 100644 --- a/server/stateevaluator.cpp +++ b/server/stateevaluator.cpp @@ -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(); diff --git a/tests/auto/guhtestbase.cpp b/tests/auto/guhtestbase.cpp index bbd0ac4a..5c1dbd00 100644 --- a/tests/auto/guhtestbase.cpp +++ b/tests/auto/guhtestbase.cpp @@ -28,6 +28,7 @@ #include #include #include +#include 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(); qsrand(QDateTime::currentMSecsSinceEpoch()); m_mockDevice1Port = 1337 + (qrand() % 1000); m_mockDevice2Port = 7331 + (qrand() % 1000); diff --git a/tests/auto/rules/testrules.cpp b/tests/auto/rules/testrules.cpp index d87a36fb..93f73a98 100644 --- a/tests/auto/rules/testrules.cpp +++ b/tests/auto/rules/testrules.cpp @@ -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();