Exemplo n.º 1
0
        void ShouldSaveAndLoadRuleLinks()
        {
            var store     = ActionStoreFactory.GetActionStore();
            var ruleId    = Guid.NewGuid();
            var ruleId2   = Guid.NewGuid();
            var expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            var returned1 = store.AddAction(expected1);
            var expected2 = (LogToFileAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.LogToFileAction", "{FileName:\"log.log\"}");
            var returned2 = store.AddAction(expected1);
            var expected3 = (HttpRequestAlertAction)AlertActionFactory.Create("send http request", "Ajakka.Alerting.HttpRequestAlertAction", "{Url:\"http://google.com\"}");
            var returned3 = store.AddAction(expected3);

            store.LinkRuleToAction(ruleId, returned1.Id);
            store.LinkRuleToAction(ruleId, returned2.Id);
            store.LinkRuleToAction(ruleId2, returned3.Id);
            ((IAlertingStorage)store).Save("ShouldSaveAndLoadRuleLinks");
            var store2 = ActionStoreFactory.GetActionStore();

            ((IAlertingStorage)store2).Load("ShouldSaveAndLoadRuleLinks");

            var actions = store2.GetLinkedActions(ruleId);

            Assert.True(actions.Length == 2);
            var action1 = actions.First((a) => { return(a.Id == returned1.Id); });

            AssertActionsEqual(returned1, action1);
            var action2 = actions.First((a) => { return(a.Id == returned2.Id); });

            AssertActionsEqual(returned2, action2);

            var action3 = store2.GetLinkedActions(ruleId2).First((a) => { return(a.Id == returned3.Id); });

            AssertActionsEqual(returned3, action3);
        }
        public void ShouldFailToCreateLogToFileAction()
        {
            LogToFileAction alertAction = (LogToFileAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.LogToFileAction", "{\"TimestampFormat\":\"MM\"}");

            Assert.Throws <InvalidOperationException>(() => {
                alertAction.Initialize();
            });
        }
        public void ShouldCreateConsoleLogAction()
        {
            ConsoleLogAction alertAction = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{\"TimestampFormat\":\"MM\"}");

            alertAction.Initialize();
            Assert.Equal("MM", alertAction.TimestampFormat);
            Assert.Equal("log to console", alertAction.Name);
        }
Exemplo n.º 4
0
        public void CanSerializeLogToFileAction()
        {
            var action     = AlertActionFactory.Create("action1", "Ajakka.Alerting.LogToFileAction", "{TimestampFormat:\"MM\"}");
            var serializer = new DataContractJsonSerializer(typeof(AlertActionBase));

            using (var stream = new MemoryStream( )){
                serializer.WriteObject(stream, action);
            }
        }
        public void ShouldCreateLogToFileAction()
        {
            LogToFileAction alertAction = (LogToFileAction)AlertActionFactory.Create("log to file", "Ajakka.Alerting.LogToFileAction", "{\"TimestampFormat\":\"MM\",\"FileName\":\"alert.log\"}");

            alertAction.Initialize();
            Assert.Equal("MM", alertAction.TimestampFormat);
            Assert.Equal("log to file", alertAction.Name);
            Assert.Equal("alert.log", alertAction.FileName);
        }
        public void BugFix_ShouldNotLogOutsideCurrentDirectory()
        {
            LogToFileAction alertAction = (LogToFileAction)AlertActionFactory.Create("log to file", "Ajakka.Alerting.LogToFileAction", "{\"TimestampFormat\":\"MM\",\"FileName\":\"c:\\\\alert.log\"}");
            var             store       = ActionStoreFactory.GetActionStore();
            var             added       = store.AddAction(alertAction);
            var             actual      = store.GetAction(added.Id);

            Assert.Equal("alert.log", ((LogToFileAction)actual).FileName);
        }
Exemplo n.º 7
0
        public void ShouldLinkActionToBlacklistRule()
        {
            var store  = ActionStoreFactory.GetActionStore();
            var ruleId = Guid.NewGuid();
            ConsoleLogAction expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            var returned = store.AddAction(expected1);

            store.LinkRuleToAction(ruleId, returned.Id);
            var actions = store.GetLinkedActions(ruleId);

            Assert.True(actions.Length == 1);
            AssertActionsEqual(returned, actions[0], true);
        }
Exemplo n.º 8
0
        public void ShouldPageCount()
        {
            var store = ActionStoreFactory.GetActionStore();

            for (int i = 0; i < 15; i++)
            {
                var action = (ConsoleLogAction)AlertActionFactory.Create("log to console " + i, "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
                store.AddAction(action);
            }
            var pageCount = store.GetPageCount();

            Assert.Equal(2, pageCount);
        }
Exemplo n.º 9
0
        public void ShouldReturnEmptyPageWithActions()
        {
            var store = ActionStoreFactory.GetActionStore();

            for (int i = 0; i < 15; i++)
            {
                var action = (ConsoleLogAction)AlertActionFactory.Create("log to console " + i, "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
                store.AddAction(action);
            }
            var firstPage = store.GetActions(3);

            Assert.True(0 == firstPage.Length);
        }
Exemplo n.º 10
0
        public void ShouldReturnActionTypes()
        {
            var alertActionTypes = AlertActionFactory.GetAlertActionTypeDescriptors();

            ValidateLogToFileActionType(alertActionTypes.First((actionType) => {
                return(actionType.TypeName == "Ajakka.Alerting.LogToFileAction");
            }));
            ValidateHttpRequestAlertActionType(alertActionTypes.First((actionType) => {
                return(actionType.TypeName == "Ajakka.Alerting.HttpRequestAlertAction");
            }));
            ValidateConsoleLogActionType(alertActionTypes.First((actionType) => {
                return(actionType.TypeName == "Ajakka.Alerting.ConsoleLogAction");
            }));
        }
Exemplo n.º 11
0
        void BugTest_ShouldAddActionAfterLoading()
        {
            var actionStore = ActionStoreFactory.GetActionStore();

            actionStore.AddAction(AlertActionFactory.Create("action1", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}"));
            actionStore.AddAction(AlertActionFactory.Create("action2", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}"));
            actionStore.AddAction(AlertActionFactory.Create("action3", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}"));
            ((IAlertingStorage)actionStore).Save("BugTest_ShouldAddActionAfterLoading");
            var actionStore2 = ActionStoreFactory.GetActionStore();

            ((IAlertingStorage)actionStore2).Load("BugTest_ShouldAddActionAfterLoading");
            var action2 = AlertActionFactory.Create("action", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}");

            actionStore2.AddAction(action2);
        }
Exemplo n.º 12
0
        public void ShouldDeleteAction()
        {
            var store = ActionStoreFactory.GetActionStore();
            ConsoleLogAction expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            ConsoleLogAction expected2 = (ConsoleLogAction)AlertActionFactory.Create("log to console 2", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}");
            var returned1 = store.AddAction(expected1);
            var returned2 = store.AddAction(expected2);

            store.DeleteAction(returned1.Id);
            var actual2 = store.GetAction(returned2.Id);

            AssertActionsEqual(expected2, actual2, false);
            AssertActionsEqual(returned2, actual2);
            Assert.Throws <KeyNotFoundException>(() => { store.GetAction(returned1.Id); });
        }
Exemplo n.º 13
0
        public void ShouldUpdateAction()
        {
            var store = ActionStoreFactory.GetActionStore();
            ConsoleLogAction expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            var returned = store.AddAction(expected1);

            expected1.Name            = "changed";
            expected1.TimestampFormat = "MM";
            expected1.Configuration   = "{TimestampFormat:\"MM\"}";

            store.UpdateAction(returned.Id, expected1);

            var actual = store.GetAction(returned.Id);

            AssertActionsEqual(expected1, actual, false);
        }
Exemplo n.º 14
0
        public void ShouldAddAndGetAlertActions()
        {
            var store = ActionStoreFactory.GetActionStore();
            ConsoleLogAction expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            ConsoleLogAction expected2 = (ConsoleLogAction)AlertActionFactory.Create("log to console 2", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}");

            var returned1 = store.AddAction(expected1);
            var returned2 = store.AddAction(expected2);

            var actual1 = store.GetAction(returned1.Id);
            var actual2 = store.GetAction(returned2.Id);

            AssertActionsEqual(expected1, actual1, false);
            AssertActionsEqual(expected2, actual2, false);
            AssertActionsEqual(returned1, actual1);
            AssertActionsEqual(returned2, actual2);
        }
Exemplo n.º 15
0
        public void ShouldReturnSecondPageWithActions()
        {
            var store = ActionStoreFactory.GetActionStore();

            for (int i = 0; i < 15; i++)
            {
                var action = (ConsoleLogAction)AlertActionFactory.Create("log to console " + i, "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
                store.AddAction(action);
            }
            var firstPage = store.GetActions(1);

            Assert.Equal(5, firstPage.Length);
            for (int i = 0, j = 10; i < 5; i++, j++)
            {
                Assert.Equal("log to console " + j, firstPage[i].Name);
            }
        }
Exemplo n.º 16
0
        void ShouldSaveAndLoadActions()
        {
            var actionStore = ActionStoreFactory.GetActionStore();
            List <AlertActionBase> actions = new List <AlertActionBase>();

            for (int i = 0; i < 50; i++)
            {
                var action = AlertActionFactory.Create("action " + i, "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"MM\"}");
                action.Initialize();
                var added = actionStore.AddAction(action);
                action.Id = added.Id;
                actions.Add(action);
            }
            for (int i = 50; i < 100; i++)
            {
                var action = AlertActionFactory.Create("action " + i, "Ajakka.Alerting.LogToFileAction", "{TimestampFormat:\"MM\",FileName:\"log.log\"}");
                action.Initialize();
                var added = actionStore.AddAction(action);
                action.Id = added.Id;
                actions.Add(action);
            }

            ((IAlertingStorage)actionStore).Save("ShouldSaveAndLoadActions");
            var actionStore2 = ActionStoreFactory.GetActionStore();
            var action2      = AlertActionFactory.Create("action e", "Ajakka.Alerting.LogToFileAction", "{TimestampFormat:\"MM\",FileName:\"log.log\"}");

            actionStore2.AddAction(action2);

            ((IAlertingStorage)actionStore2).Load("ShouldSaveAndLoadActions");


            foreach (var expected in actions)
            {
                var actual = actionStore2.GetAction(expected.Id);
                AssertActionsEqual(expected, actual);
            }

            var loadedActions = new List <AlertActionBase>();

            for (int i = 0; i < actionStore2.GetPageCount(); i++)
            {
                loadedActions.AddRange(actionStore2.GetActions(i));
            }
            Assert.True(loadedActions.Count == 100);
        }
Exemplo n.º 17
0
        public void ShouldDeleteRuleAndLinkedActions()
        {
            var store     = ActionStoreFactory.GetActionStore();
            var ruleId    = Guid.NewGuid();
            var ruleId2   = Guid.NewGuid();
            var expected1 = (ConsoleLogAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.ConsoleLogAction", "{TimestampFormat:\"G\"}");
            var returned1 = store.AddAction(expected1);
            var expected2 = (LogToFileAction)AlertActionFactory.Create("log to console", "Ajakka.Alerting.LogToFileAction", "{FileName:\"log.log\"}");
            var returned2 = store.AddAction(expected1);
            var expected3 = (HttpRequestAlertAction)AlertActionFactory.Create("send http request", "Ajakka.Alerting.HttpRequestAlertAction", "{Url:\"http://google.com\"}");
            var returned3 = store.AddAction(expected3);

            store.LinkRuleToAction(ruleId, returned1.Id);
            store.LinkRuleToAction(ruleId, returned2.Id);
            store.LinkRuleToAction(ruleId2, returned3.Id);

            store.DeleteRuleAndActions(ruleId);
            Assert.Throws <KeyNotFoundException>(() => { store.GetAction(returned1.Id); });
            Assert.Throws <KeyNotFoundException>(() => { store.GetAction(returned2.Id); });
            store.GetAction(returned3.Id);
            var linkedActions = store.GetLinkedActions(ruleId);

            Assert.True(linkedActions.Length == 0);
        }
Exemplo n.º 18
0
 public void ShouldFailToCreateConsoleLogAction()
 {
     Assert.Throws <ArgumentException>(() => {
         ConsoleLogAction alertAction = (ConsoleLogAction)AlertActionFactory.Create("log to console", "ConsoleLogAction", "{\"TimestampFormat\":\"MM\"}");
     });
 }