public static MvcHtmlString PaginacaoLinks(this HtmlHelper html, Paginacao paginacao, Func<int,string> paginaUrl )
        {
            StringBuilder resultado = new StringBuilder();
            for (int i = 1; i <= paginacao.TotalPaginas; i++)
            {
                TagBuilder tag = new TagBuilder("a");
                tag.MergeAttribute("href", paginaUrl(i));
                tag.InnerHtml = i.ToString();

                if (i == paginacao.PaginaAtual)
                {
                    //se for a página atual, adiciona classes do bootstrap
                    tag.AddCssClass("selected");
                    tag.AddCssClass("btn-primary");
                }
                tag.AddCssClass("btn btn-default");
                resultado.Append(tag);
            }

            return MvcHtmlString.Create(resultado.ToString());
        }
Esempio n. 2
0
        public void TestePaginacaoGeradaCorretamente()
        {
            //Testando com AAA (arrange, Act, Assert)

            //Arrange (preparação)
            HtmlHelper html = null;
            Paginacao paginacao = new Paginacao
            {
                PaginaAtual = 2,
                ItensPorPagina = 10,
                ItensTotal = 28
            };
            Func<int, string> paginaUrl = i => "Pagina" + i;

            //Act (estimular sistema sendo testado)
            MvcHtmlString resultado = html.PaginacaoLinks(paginacao, paginaUrl);

            //Assert (verificar se resultados obtidos = resultados esperados)
            Assert.AreEqual(
                @"<a class=""btn btn-default"" href=""Pagina1"">1</a>" +
                @"<a class=""btn btn-default btn-primary selected"" href=""Pagina2"">2</a>" +
                @"<a class=""btn btn-default"" href=""Pagina3"">3</a>"
                , resultado.ToString());
        }