public void TestMessageAppendedEvent()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            var feedbackMessage = FeedbackMessage.Info("test raise appended event.");
            int countRaiseEvent = 0;

            EventHandler <MessageAppendedEventArgs> handler = (sender, args) =>
            {
                Assert.AreEqual(store, sender);
                Assert.AreEqual(feedbackMessage, args.Message);
                countRaiseEvent++;
            };

            // register
            store.OnMessageAppeded += handler;


            store.AddMessage(feedbackMessage);
            Assert.AreEqual(1, countRaiseEvent);

            // unregister
            store.OnMessageAppeded -= handler;
            store.AddMessage(FeedbackMessage.Warn("test unregister event"));
            Assert.AreEqual(1, countRaiseEvent);
        }
        public void TestContains()
        {
            var store = new FeedbackMessageStore();

            var message = FeedbackMessage.Info("Test");

            store.AddMessage(message);
            store.AddMessage(FeedbackMessage.Info("Test2"));
            Assert.AreEqual(2, store.Count);

            Assert.IsTrue(store.Contains(message));
            Assert.IsFalse(store.Contains(FeedbackMessage.Warn("Test")));
        }
        public void TestClear()
        {
            var store = new FeedbackMessageStore();

            var message = FeedbackMessage.Info("Test");

            store.AddMessage(message);
            store.AddMessage(FeedbackMessage.Info("Test2"));
            Assert.AreEqual(2, store.Count);

            store.Clear();
            Assert.AreEqual(0, store.Count);
        }
        public void TestClearLevel()
        {
            var store = new FeedbackMessageStore();

            var message = FeedbackMessage.Info("Test");

            store.AddMessage(message);
            store.AddMessage(FeedbackMessage.Info("Test2"));
            store.AddMessage(FeedbackMessage.Warn("Test2"));
            Assert.AreEqual(3, store.Count);

            store.Clear(FeedbackMessageLevel.INFO);
            Assert.AreEqual(1, store.Count);

            store.Clear(FeedbackMessageLevel.WARN);
            Assert.AreEqual(0, store.Count);
        }
        public void TestAddDuplicaateMessages()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            var info1 = FeedbackMessage.Info("Test message.");
            var info2 = FeedbackMessage.Info("Test message.");

            store.AddMessage(info1);
            store.AddMessage(info2);

            Assert.AreEqual(1, store.Count);

            var warn = FeedbackMessage.Warn("Test message.");

            store.AddMessage(warn);
            Assert.AreEqual(2, store.Count);
        }
        public void TestCleanRendered()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            Assert.IsFalse(store.HasUnrenderedMessage());


            var infoMessage1 = FeedbackMessage.Info("Test warn message1");

            store.AddMessage(infoMessage1);
            var infoMessage2 = FeedbackMessage.Info("Test warn message2");

            store.AddMessage(infoMessage2);
            var infoMessage3 = FeedbackMessage.Info("Test warn message3");

            store.AddMessage(infoMessage3);

            store.CleanRendered();

            var infoMessages = store.GetFeedbackMessages(FeedbackMessageLevel.INFO);

            Assert.AreEqual(3, infoMessages.Count);

            infoMessage1.MarkRendered();
            infoMessage2.MarkRendered();
            store.CleanRendered();

            var infoMessagesCleanedRendered = store.GetFeedbackMessages(FeedbackMessageLevel.INFO);

            Assert.AreEqual(1, infoMessagesCleanedRendered.Count);
            Assert.IsTrue(infoMessagesCleanedRendered.Contains(infoMessage3));

            infoMessage3.MarkRendered();
            store.CleanRendered();

            Assert.IsFalse(store.HasUnrenderedMessage());
        }
        public void TestHasUnrenderedMessage()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            Assert.IsFalse(store.HasUnrenderedMessage());

            var message = FeedbackMessage.Warn("Test warn message");

            store.AddMessage(message);

            Assert.IsTrue(store.HasUnrenderedMessage());

            message.MarkRendered();

            Assert.IsFalse(store.HasUnrenderedMessage());
        }
        public void TestAddMessage()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            var feedbackMessage = FeedbackMessage.Info("Test info message.");

            store.AddMessage(feedbackMessage);

            IList <FeedbackMessage> infoMessages = store.GetFeedbackMessages(FeedbackMessageLevel.INFO);

            Assert.AreEqual(1, infoMessages.Count);
            Assert.IsTrue(infoMessages.Contains(feedbackMessage));

            IList <FeedbackMessage> errorMessages = store.GetFeedbackMessages(FeedbackMessageLevel.ERROR);

            Assert.AreEqual(0, errorMessages.Count);
        }
        public void TestFilterPageHandlerExecuted()
        {
            var httpContext = InitializeHttpContext();

            var store = new FeedbackMessageStore();

            store.AddMessage(FeedbackMessage.Info("test"));
            httpContext.Items[FeedbackMessageStoreHolder.ITEM_KEY] = store;

            // flashs message store to session
            var filter = new FeedbackMessageActionFilter();

            filter.OnPageHandlerExecuted(null);

            var flashedStore = httpContext.Session.GetStore(FeedbackMessageStoreHolder.ITEM_KEY);

            Assert.IsNotNull(flashedStore);
            Assert.AreEqual(1, flashedStore.Count);
        }
        public void TestFilterPageHandlerExecuting()
        {
            var httpContext = InitializeHttpContext();

            var store = new FeedbackMessageStore();

            store.AddMessage(FeedbackMessage.Info("test"));
            httpContext.Session.SetStore(FeedbackMessageStoreHolder.ITEM_KEY, store);

            // loads message store from session
            var filter = new FeedbackMessageActionFilter();

            filter.OnPageHandlerExecuting(null);

            var loadedStore = httpContext.Items[FeedbackMessageStoreHolder.ITEM_KEY] as FeedbackMessageStore;

            Assert.IsNotNull(loadedStore);
            Assert.AreEqual(1, loadedStore.Count);
        }
        public void TestFlashExistsUnrenderedMessages()
        {
            var httpContext = InitializeHttpContext();

            var store = new FeedbackMessageStore();

            store.AddMessage(FeedbackMessage.Info("test message."));

            httpContext.Items[FeedbackMessageStoreHolder.ITEM_KEY] = store;

            FeedbackMessageStore.Flash();

            var flashedStore = httpContext.Session.GetStore(FeedbackMessageStoreHolder.ITEM_KEY);

            Assert.IsNotNull(flashedStore);
            Assert.AreEqual(1, flashedStore.Count);

            Assert.IsTrue(flashedStore.HasUnrenderedMessage());

            var message = flashedStore.GetFeedbackMessages()[0];

            Assert.AreEqual(FeedbackMessageLevel.INFO, message.Level);
            Assert.AreEqual("test message.", message.ToString());
        }