public void Can_Generate_Page_Links()
        {
            // Arrange
            var urlHelper = new Mock <IUrlHelper>();

            urlHelper.SetupSequence(x => x.Action(It.IsAny <UrlActionContext>()))
            .Returns("Test/Page1")
            .Returns("Test/Page2")
            .Returns("Test/Page3");

            var urlHelperFactory = new Mock <IUrlHelperFactory>();

            urlHelperFactory.Setup(f =>
                                   f.GetUrlHelper(It.IsAny <ActionContext>()))
            .Returns(urlHelper.Object);

            PageLinkTagHelper helper =
                new PageLinkTagHelper(urlHelperFactory.Object)
            {
                PageModel = new PagingInfo
                {
                    CurrentPage  = 2,
                    TotalItems   = 28,
                    ItemsPerPage = 10
                },
                PageAction = "Test"
            };

            TagHelperContext ctx = new TagHelperContext(
                new TagHelperAttributeList(),
                new Dictionary <object, object>(), "");

            var             content = new Mock <TagHelperContent>();
            TagHelperOutput output  = new TagHelperOutput("div",
                                                          new TagHelperAttributeList(),
                                                          (cache, encoder) => Task.FromResult(content.Object));

            // Act
            helper.ProcessAsync(ctx, output);

            // Assert
            Assert.Equal(@"<a href=""Test/Page1"">1</a>"
                         + @"<a href=""Test/Page2"">2</a>"
                         + @"<a href=""Test/Page3"">3</a>",
                         output.Content.GetContent());
        }
Пример #2
0
        public void Can_Generate_Page_Links()
        {
#warning почитать про Moq
            var urlHelper = new Mock <IUrlHelper>();
            urlHelper.SetupSequence(x => x.Action(It.IsAny <UrlActionContext>()))
            .Returns("Test/Page1")
            .Returns("Test/Page2")
            .Returns("Test/Page3");
            var urlHelperFactory = new Mock <IUrlHelperFactory>();
            urlHelperFactory.Setup(f => f.GetUrlHelper(It.IsAny <ActionContext>())).Returns(urlHelper.Object);

            PageLinkTagHelper helper = new PageLinkTagHelper(urlHelperFactory.Object)
            {
                PageModel = new PagingInfo
                {
                    CurrentPage  = 2,
                    TotalItems   = 28,
                    ItemsPerPage = 10
                },
                PageAction = "Test"
            };

            TagHelperContext ctx = new TagHelperContext(
                new TagHelperAttributeList(),
                new Dictionary <object, object>(), "");

            var             content = new Mock <TagHelperContent>();
            TagHelperOutput output  = new TagHelperOutput("div",
                                                          new TagHelperAttributeList(),
                                                          (cache, encoder) => Task.FromResult(content.Object));

            helper.ProcessAsync(ctx, output);

            Assert.Equal(@"<a href=""Test/Page1"">Первая</a>"
                         + @"<a href=""Test/Page2"">Страница 2</a>"
                         + @"<a href=""Test/Page3"">Последняя</a>",
#warning зачем надо decode?
                         HttpUtility.HtmlDecode(output.Content.GetContent()));
        }