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()); }
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())); }