mirror of https://github.com/nymea/nymea.git
fix rules with time descriptors to follow the same logic
parent
0f699ac917
commit
681b306b1b
|
|
@ -594,7 +594,7 @@ void NymeaCore::gotEvent(const Event &event)
|
|||
if (!rule.eventDescriptors().isEmpty()) {
|
||||
m_logger->logRuleTriggered(rule);
|
||||
QList<RuleAction> tmp;
|
||||
if (rule.statesActive()) {
|
||||
if (rule.statesActive() && rule.timeActive()) {
|
||||
qCDebug(dcRuleEngineDebug()) << "Executing actions";
|
||||
tmp = rule.actions();
|
||||
} else {
|
||||
|
|
@ -653,7 +653,7 @@ void NymeaCore::onDateTimeChanged(const QDateTime &dateTime)
|
|||
// TimeEvent based
|
||||
if (!rule.timeDescriptor().timeEventItems().isEmpty()) {
|
||||
m_logger->logRuleTriggered(rule);
|
||||
if (rule.statesActive()) {
|
||||
if (rule.statesActive() && rule.timeActive()) {
|
||||
actions.append(rule.actions());
|
||||
} else {
|
||||
actions.append(rule.exitActions());
|
||||
|
|
|
|||
|
|
@ -454,8 +454,10 @@ QList<Rule> RuleEngine::evaluateTime(const QDateTime &dateTime)
|
|||
|
||||
foreach (const Rule &r, m_rules.values()) {
|
||||
Rule rule = m_rules.value(r.id());
|
||||
if (!rule.enabled())
|
||||
if (!rule.enabled()) {
|
||||
qCDebug(dcRuleEngineDebug()) << "Skipping rule" + rule.name() + "because it is disabled";
|
||||
continue;
|
||||
}
|
||||
|
||||
// If no timeDescriptor, do nothing
|
||||
if (rule.timeDescriptor().isEmpty())
|
||||
|
|
@ -500,6 +502,7 @@ QList<Rule> RuleEngine::evaluateTime(const QDateTime &dateTime)
|
|||
}
|
||||
|
||||
m_lastEvaluationTime = dateTime;
|
||||
qCDebug(dcRuleEngine()) << "EvaluateTimeEvent evaluated" << rules.count() << "to be executed";
|
||||
return rules;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1205,6 +1205,8 @@ void TestTimeManager::testCalendarItemEvent()
|
|||
QFETCH(QDateTime, dateTime);
|
||||
QFETCH(bool, trigger);
|
||||
|
||||
cleanupMockHistory();
|
||||
|
||||
NymeaCore::instance()->timeManager()->setTime(dateTime);
|
||||
|
||||
// Trigger event
|
||||
|
|
@ -1212,7 +1214,6 @@ void TestTimeManager::testCalendarItemEvent()
|
|||
|
||||
if (trigger) {
|
||||
verifyRuleExecuted(mockActionIdNoParams);
|
||||
cleanupMockHistory();
|
||||
} else {
|
||||
verifyRuleNotExecuted();
|
||||
}
|
||||
|
|
@ -1903,7 +1904,8 @@ void TestTimeManager::verifyRuleNotExecuted()
|
|||
QCOMPARE(spy.count(), 1);
|
||||
|
||||
QByteArray actionHistory = reply->readAll();
|
||||
QVERIFY2(actionHistory.isEmpty(), "Action is triggered while it should not have been.");
|
||||
qWarning() << "actionHistory" << actionHistory;
|
||||
QVERIFY2(actionHistory.isEmpty(), "Actfdsfadsion is triggered while it should not have been.");
|
||||
reply->deleteLater();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue