diff --git a/tests/auto/events/testevents.cpp b/tests/auto/events/testevents.cpp index 05f87075..469157a8 100644 --- a/tests/auto/events/testevents.cpp +++ b/tests/auto/events/testevents.cpp @@ -35,6 +35,7 @@ class TestEvents: public GuhTestBase private slots: void triggerEvent(); + void triggerStateChangeEvent(); }; void TestEvents::triggerEvent() @@ -64,5 +65,33 @@ void TestEvents::triggerEvent() QCOMPARE(event.deviceId(), device->id()); } +void TestEvents::triggerStateChangeEvent() +{ + QList devices = GuhCore::instance()->deviceManager()->findConfiguredDevices(mockDeviceClassId); + QVERIFY2(devices.count() > 0, "There needs to be at least one configured Mock Device for this test"); + Device *device = devices.first(); + + QSignalSpy spy(GuhCore::instance()->deviceManager(), SIGNAL(eventTriggered(const Event&))); + + // Setup connection to mock client + QNetworkAccessManager nam; + + // trigger state changed event in mock device + int port = device->paramValue("httpport").toInt(); + QNetworkRequest request(QUrl(QString("http://localhost:%1/setstate?%2=%3").arg(port).arg(mockIntStateId.toString()).arg(11))); + QNetworkReply *reply = nam.get(request); + reply->deleteLater(); + + // Lets wait for the notification + spy.wait(); + QCOMPARE(spy.count(), 1); + + // Make sure the event contains all the stuff we expect + Event event = spy.at(0).at(0).value(); + QCOMPARE(event.eventTypeId().toString(), mockIntStateId.toString()); + QCOMPARE(event.deviceId(), device->id()); + QCOMPARE(event.param("value").value().toInt(), 11); +} + #include "testevents.moc" QTEST_MAIN(TestEvents) diff --git a/tests/auto/rules/testrules.cpp b/tests/auto/rules/testrules.cpp index 9d423fbb..7e10f65b 100644 --- a/tests/auto/rules/testrules.cpp +++ b/tests/auto/rules/testrules.cpp @@ -34,8 +34,10 @@ class TestRules: public GuhTestBase Q_OBJECT private slots: - void addRules_data(); - void addRules(); + void addRemoveRules_data(); + void addRemoveRules(); + + void removeInvalidRule(); void loadStoreConfig(); @@ -48,7 +50,7 @@ private slots: void testStateEvaluator2(); }; -void TestRules::addRules_data() +void TestRules::addRemoveRules_data() { QVariantMap validActionNoParams; validActionNoParams.insert("actionTypeId", mockActionIdNoParams); @@ -114,7 +116,7 @@ void TestRules::addRules_data() } -void TestRules::addRules() +void TestRules::addRemoveRules() { QFETCH(QVariantMap, action1); QFETCH(QVariantMap, eventDescriptor); @@ -184,6 +186,14 @@ void TestRules::addRules() QVERIFY2(rules.count() == 0, "There should be no rules."); } +void TestRules::removeInvalidRule() +{ + QVariantMap params; + params.insert("ruleId", RuleId::createRuleId()); + QVariant response = injectAndWait("Rules.RemoveRule", params); + verifySuccess(response, false); +} + void TestRules::loadStoreConfig() { QVariantMap eventDescriptor1;