Example #1
0
        public void AlertDoesNotTriggersWhenOldValueMatched(string row, double oldValue, double value)
        {
            var alert = new IOconfAlert(row, 0);

            alert.CheckValue(oldValue, DateTime.UtcNow);
            Assert.IsFalse(alert.CheckValue(value, DateTime.UtcNow));
        }
Example #2
0
        public void AlertTriggersWhenOldValueDidNotMatch(string row, double oldValue, double value)
        {
            var alert = new IOconfAlert(row, 0);

            alert.CheckValue(oldValue, DateTime.UtcNow);
            Assert.IsTrue(alert.CheckValue(value, DateTime.UtcNow));
        }
Example #3
0
        public void SupportsDynamicAlertsFormat(string expressionWithOptions, double value, int rateLimit, string command)
        {
            var alert = new IOconfAlert("dynamicalert", expressionWithOptions);

            Assert.IsTrue(alert.CheckValue(value, DateTime.UtcNow));
            Assert.AreEqual(rateLimit, alert.RateLimitMinutes);
            Assert.AreEqual(command, alert.Command);
        }
Example #4
0
        public void AlertReturnsExpectedMessageAfterCheckingValueTwice(string row, double oldValue, double value, string expectedMessage)
        {
            var alert = new IOconfAlert(row, 0);

            alert.CheckValue(oldValue, DateTime.UtcNow);
            alert.CheckValue(value, DateTime.UtcNow);
            Assert.AreEqual(expectedMessage, alert.Message);
        }
 private void TriggerAlert(IOconfAlert a, DateTime timestamp, string message)
 {
     _cmd.FireAlert(message, timestamp);
     if (a.Command != default)
     {
         foreach (var commands in a.Command.Split('|'))
         {
             ExecuteCommand(commands);
         }
     }
 }
        protected override Task Command(List <string> args)
        {
            if (args.Count < 3)
            {
                logger.LogError($"Unexpected format for Dynamic alert: {string.Join(',', args)}. Format: addalert AlertName SensorName comparison value [rateMinutes] [command]");
                return(Task.CompletedTask);
            }

            var alert = new IOconfAlert(args[1], string.Join(' ', args.Skip(2)));

            lock (_alerts)
            {
                _alerts.RemoveAll(a => a.Name == args[1]);
                _alerts.Add(alert);
            }

            return(Task.CompletedTask);
        }
Example #7
0
        public void AlertTriggers(string row, double value)
        {
            var alert = new IOconfAlert(row, 0);

            Assert.IsTrue(alert.CheckValue(value, DateTime.UtcNow));
        }