public void SetUp()
 {
     tempData = new TempDataDictionary();
     viewContext = new ViewContext();
     viewContext.TempData = tempData;
     viewDataContainer = new Mock<IViewDataContainer>();
     htmlHelper = new HtmlHelper(viewContext, viewDataContainer.Object);
     flashStorage = new FlashStorage(tempData);
 }
        public static IHtmlString Flash <TModel>(this ZephyrHtmlHelper <TModel> zephyrHelper, string tagName = "div", bool htmlEncoded = true) where TModel : class
        {
            //Func<string, XNode> content = message => encoded ? new XText(message) : XElement.Parse(message) as XNode;
            Func <string, XNode> content = message => new XText(message);

            var messages = new FlashStorage(zephyrHelper.HtmlHelper.ViewContext.TempData).Messages.ToList();

            var elements = messages.Select(pair => new XElement(tagName ?? "div", new XAttribute("class", "alert" + " " + pair.Key),
                                                                new XElement("button", new XAttribute("class", "close"), new XAttribute("data-dismiss", "alert"), "×"),
                                                                content(pair.Value)
                                                                ));
            var html = string.Join(Environment.NewLine, elements.Select(e => e.ToString()));

            return(zephyrHelper.HtmlHelper.Raw(htmlEncoded ? html : HttpUtility.HtmlDecode(html)));
        }