Inheritance: IHistoryItemParser
        public static string ToHtml(this String toHtml)
        {
            if (toHtml.IsEmpty()) return String.Empty;

            var items = new HistoryItemParser().Parse(toHtml);
            var result = new HistoryItemHtmlRenderer().Render(items);
            result = urlFinderRegEx.Replace(result, @"<a href=""${link}"">${link}</a>");

            return result;
        }
        public void finds_all_items()
        {
            const string input = "item1\r\nitem2\nitem3";

            var items = new HistoryItemParser().Parse(input).ToArray();

            items[0].ToString().ShouldEqual("item1");
            items[1].ToString().ShouldEqual("item2");
            items[2].ToString().ShouldEqual("item3");
        }
        public void finds_email_headers_mixed_with_items()
        {
            const string input = "item1\r\nto: [email protected]\nitem3";

            var items = new HistoryItemParser().Parse(input).ToArray();
            items[0].ToString().ShouldEqual("item1");

            var emailHeaderItem = ((EmailHeader) items[1]).Headers.First();
            emailHeaderItem.Title.ShouldEqual("to");
            emailHeaderItem.Text.ShouldEqual("*****@*****.**");

            items[2].ToString().ShouldEqual("item3");
        }
 public void beforeEach()
 {
     _logger = MockRepository.GenerateStub<ILogger>();
     var historyItemParser = new HistoryItemParser(new HistoryParsers(new HistorySettings(), new HistoryOriginalMessageConfiguration(_logger)), _logger);
     _cut = new HistoryOutputParser(new ParagraphEndLocator(), new ParagraphAggregator(), historyItemParser, new HistoryItemHtmlRenderer(), new HtmlEncodeOutputEncoder(), new UrlLinkifier());
 }