示例#1
0
        public static FeedbackMessageStore GetStore(this HttpSessionState session, string key)
        {
            var str = session[key] as string;

            if (string.IsNullOrEmpty(str))
            {
                return(null);
            }

            FeedbackMessageStore obj = FeedbackMessageSettings.Instance.StoreSerializer.Deserialize(str);

            return(obj);
        }
        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 TestFlashEmptyStore()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            HttpContext.Current.Items[FeedbackMessageStoreHolder.ITEM_KEY] = store;

            FeedbackMessageStore.Flash();

            var flashedStore = HttpContext.Current.Session[FeedbackMessageStoreHolder.ITEM_KEY];

            Assert.IsNull(flashedStore);
        }
        public void TestFlashEmptyStore()
        {
            var httpContext = InitializeHttpContext();

            var store = new FeedbackMessageStore();

            httpContext.Items[FeedbackMessageStoreHolder.ITEM_KEY] = store;

            FeedbackMessageStore.Flash();

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

            Assert.IsNull(flashedStore);
        }
        public void TestLoad()
        {
            InitializeHttpContext();

            var store = new FeedbackMessageStore();

            HttpContext.Current.Session[FeedbackMessageStoreHolder.ITEM_KEY] = store;


            FeedbackMessageStore.Load();

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

            Assert.IsNotNull(loadedStore);
            Assert.AreEqual(0, loadedStore.Count);
        }
        public HttpContext InitializeHttpContext()
        {
            var testContext = new DefaultHttpContext();

            testContext.Session = new MockSession();

            FeedbackMessageStoreHolder.IsAvailableSession = true;

            var contextAccessor = new MockHttpContextAccessor();

            contextAccessor.HttpContext = testContext;

            FeedbackMessageStoreHolder.ContextAccessor = contextAccessor;
            FeedbackMessageStore.Initialize(FeedbackMessageStoreHolder.Instance);
            return(testContext);
        }
        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 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 TestLoad()
        {
            var httpContext = InitializeHttpContext();

            var store = new FeedbackMessageStore();



            httpContext.Session.SetStore(FeedbackMessageStoreHolder.ITEM_KEY, store);


            FeedbackMessageStore.Load();

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

            Assert.IsNotNull(loadedStore);
            Assert.AreEqual(0, loadedStore.Count);
        }
        public void TestSerializeAndDeserializeStore()
        {
            var store = new FeedbackMessageStore();

            store.Add(FeedbackMessage.Info("情報メッセージ"));

            var serializer = new FeedbackMessageStoreSerializer();

            var str = serializer.Serialize(store);


            var deserializeStore = serializer.Deserialize(str);

            Assert.IsTrue(deserializeStore.HasUnrenderedMessage());
            Assert.AreEqual("情報メッセージ", deserializeStore.GetFeedbackMessages()[0].ToString());

            Assert.AreEqual(1, deserializeStore.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 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 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 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 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());
        }