public static MvcHtmlString PageLink(this HtmlHelper html, Paginacao paginacao, Func<int,string> PaginaURL)
        {
            StringBuilder result = new StringBuilder();

            for (int i = 1; i < paginacao.PaginaTotal; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", PaginaURL(i));
                tag.InnerHtml = i.ToString();

                if (i == paginacao.PaginaAtual)
                {
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                result.Append(tag);
            }
            return MvcHtmlString.Create(result.ToString());
        }
        public void TesteGeracaodePaginacao()
        {
            HtmlHelper html = null;

            Paginacao paginacao = new Paginacao
            {
                PaginaAtual = 2,
                IntensPorPagina = 10,
                IntensTotal = 28,
            };
            Func<int, string> PaginaURL = i => "Pagina" + i;

            //act
            MvcHtmlString resultado = html.PageLink(paginacao, PaginaURL);

            //assert
            Assert.AreEqual(

                @"<a class=""btn btn-defaoult"" href=""Pagina1"">1</a>"
               + @"<a class=""btn btn-default btn-primary selected"" href""Pagina2"">2</a>"
               + @"<a class=""btn btn-default"" href=""Pagina3""</a>", resultado.ToString()

               );
        }