Browse Source

Fix AlarmRulesTest

pull/15563/head
Viacheslav Klimov 5 months ago
parent
commit
5c0ada73e7
Failed to extract signature
  1. 13
      application/src/test/java/org/thingsboard/server/cf/AlarmRulesTest.java

13
application/src/test/java/org/thingsboard/server/cf/AlarmRulesTest.java

@ -415,20 +415,19 @@ public class AlarmRulesTest extends AbstractControllerTest {
AlarmSeverity.CRITICAL, new Condition("return temperature >= 50;", null, staticDurationMs) AlarmSeverity.CRITICAL, new Condition("return temperature >= 50;", null, staticDurationMs)
); );
CalculatedField calculatedField = createAlarmCf(deviceId, "High Temperature Alarm", AlarmRuleDefinition alarmRule = createAlarmRule(deviceId, "High Temperature Alarm",
arguments, createRules, null); arguments, createRules, null);
CalculatedFieldId alarmRuleId = alarmRule.getId();
// post telemetry to trigger condition and wait for the static-phase eval to produce a debug event, // post telemetry to trigger condition and wait for the static-phase eval to produce a debug event,
// which guarantees firstEventTs > 0 in AlarmRuleState before we trigger REINIT // which guarantees firstEventTs > 0 in AlarmRuleState before we trigger REINIT
postTelemetry(deviceId, "{\"temperature\":50}"); postTelemetry(deviceId, "{\"temperature\":50}");
CalculatedFieldId cfId = calculatedField.getId();
await().atMost(TIMEOUT, TimeUnit.SECONDS) await().atMost(TIMEOUT, TimeUnit.SECONDS)
.until(() -> getDebugEvents(cfId, 1), .until(() -> getDebugEvents(alarmRuleId, 1),
events -> !events.isEmpty() && !events.get(0).getId().equals(latestEventId)); events -> !events.isEmpty() && !events.get(0).getId().equals(latestEventId));
// update CF: add attribute argument and switch duration from static to dynamic // update CF: add attribute argument and switch duration from static to dynamic
AlarmCalculatedFieldConfiguration configuration = AlarmCalculatedFieldConfiguration configuration = alarmRule.getConfiguration();
(AlarmCalculatedFieldConfiguration) calculatedField.getConfiguration();
Argument durationArgument = new Argument(); Argument durationArgument = new Argument();
durationArgument.setRefEntityKey(new ReferencedEntityKey("durationThreshold", durationArgument.setRefEntityKey(new ReferencedEntityKey("durationThreshold",
@ -440,13 +439,13 @@ public class AlarmRulesTest extends AbstractControllerTest {
configuration.getCreateRules().get(AlarmSeverity.CRITICAL).getCondition(); configuration.getCreateRules().get(AlarmSeverity.CRITICAL).getCondition();
durationCondition.setValue(new AlarmConditionValue<>(null, "durationThreshold")); durationCondition.setValue(new AlarmConditionValue<>(null, "durationThreshold"));
calculatedField = saveCalculatedField(calculatedField); alarmRule = saveAlarmRule(alarmRule);
long dynamicDurationMs = 3000L; long dynamicDurationMs = 3000L;
postAttributes(deviceId, AttributeScope.SERVER_SCOPE, postAttributes(deviceId, AttributeScope.SERVER_SCOPE,
"{\"durationThreshold\":" + dynamicDurationMs + "}"); "{\"durationThreshold\":" + dynamicDurationMs + "}");
checkAlarmResult(calculatedField, alarmResult -> { checkAlarmResult(alarmRule, alarmResult -> {
assertThat(alarmResult.isCreated()).isTrue(); assertThat(alarmResult.isCreated()).isTrue();
assertThat(alarmResult.getAlarm().getSeverity()).isEqualTo(AlarmSeverity.CRITICAL); assertThat(alarmResult.getAlarm().getSeverity()).isEqualTo(AlarmSeverity.CRITICAL);
assertThat(alarmResult.getAlarm().getStatus()).isEqualTo(AlarmStatus.ACTIVE_UNACK); assertThat(alarmResult.getAlarm().getStatus()).isEqualTo(AlarmStatus.ACTIVE_UNACK);

Loading…
Cancel
Save