public void TestarSeAPaginacaoEstaSendoGeradaCorretamente()
        {
            //Arrange
            HtmlHelper html = null;

            Paginacao paginacao = new Paginacao
            {
                PaginaAtual = 2,
                ItensPorPagina = 10,
                ItensTotal = 28
            };

            Func<int, string> paginaUrl = i => "Pagina" + i;

            //Act
            MvcHtmlString resultado = html.PageLinks(paginacao, paginaUrl);

            //Assert

            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=""Pagina1"" >3</a>", resultado.ToString()
            );

        }
        public void TestMethod1()
        {
            //Arrange

            HtmlHelper html = null;

            Paginacao paginacao = new Paginacao
            {
                PaginaAtual = 2,
                ItensPorPagina = 10,
                ItensTotal = 28,
               
            };
            
           
            Func<int, string> paginaURL = i => "Pagina" + i;
            
            // o Act
            MvcHtmlString resultado = html.PagesLinks(paginacao, paginaURL);

            //Assert
            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()
                
                );

        }
 public static MvcHtmlString PageLinks(this HtmlHelper html, Paginacao paginacao, Func<int, string> paginaUrl)
 {
     var resultado = new StringBuilder();
     for (var i = 1; i < paginacao.TotalPagina; i++)
     {
         var 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");
         resultado.Append(tag);
     }
     return MvcHtmlString.Create(resultado.ToString());
 }
        public void Pode_Gerar_Paginacao_Test()
        {
            //Arrange
            HtmlHelper html = null;

            Paginacao paginacao = new Paginacao()
            {
                PaginaAtual = 2,
                ItensTotal = 28,
                ItensPorPagina = 10
            };

            Func<int, string> paginaUrl = i => "Pagina" + i;

            //Act
            MvcHtmlString result = html.PageLinks(paginacao, paginaUrl);

            //Assert
            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>", result.ToString());
        }