public void ShouldKnowHowToListAllPages() { var repository = new Mock <Repository>(); var savedPages = new List <StaticPage> { new StaticPage { Id = 1, Title = "test title", Content = "Hello\n=====\nWorld" }, new StaticPage { Id = 2, Title = "test title2", Content = "Hello\n=====\nAnother World" } }; var savedPageInformations = new List <StaticPageInformation> { new StaticPageInformation { Model = savedPages[0] }, new StaticPageInformation { Model = savedPages[1] } }; repository.Setup(repo => repo.Search <StaticPage>(It.IsAny <Expression <Func <StaticPage, bool> > >(), It.IsAny <int>(), It.IsAny <int>())).Returns(savedPages); repository.Setup(repo => repo.Search <StaticPage>(It.IsAny <Expression <Func <StaticPage, bool> > >())).Returns(savedPages); var controller = new PagesController(repository.Object); var result = controller.List(); repository.Verify(it => it.Search <StaticPage>(It.IsAny <Expression <Func <StaticPage, bool> > >(), It.IsAny <int>(), It.IsAny <int>()), Times.Once()); Assert.AreEqual(savedPageInformations[0].Model, ((PagedList.IPagedList <StaticPageInformation>)result.Model)[0].Model); Assert.AreEqual(savedPageInformations[1].Model, ((PagedList.IPagedList <StaticPageInformation>)result.Model)[1].Model); }
public void ShouldDisplayOnlyDraftPagesCreatedByCurrentUserWhenListingDraftPages() { string userName = "******"; UsingSession((session) => { var repository = new Repository(session); var controller = new PagesController(repository); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 1, Title = "Draft Page", Content = "Hello\n=====\nWorld", IsDraft = true, Creator = userName } }); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 2, Title = "Draft Page 2", Content = "Hello\n=====\nAnother World", IsDraft = true, Creator = userName } }); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 3, Title = "Draft Page 3", Content = "Hello\n=====\nI'm a draft", IsDraft = true, Creator = "anotherUser" } }); }); UsingSession((session) => { WaitForTheLastWrite <StaticPage>(session); var httpContextStub = new Mock <HttpContextBase> { DefaultValue = DefaultValue.Mock }; var user = Mock.Get(httpContextStub.Object.User); user.Setup(u => u.Identity.Name).Returns(userName); var controller = new PagesController(new Repository(session)); controller.ControllerContext = new ControllerContext(httpContextStub.Object, new RouteData(), controller); var result = controller.List(excludeDraft: false); var pages = (PagedList.IPagedList <StaticPageInformation>)result.Model; Assert.AreEqual(2, pages.Count); }); }
public void ShouldExcludeDraftPagesWhenListingAllPages() { UsingSession((session) => { var repository = new Repository(session); var controller = new PagesController(repository); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 1, Title = "test title", Content = "Hello\n=====\nWorld" } }); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 2, Title = "test title2", Content = "Hello\n=====\nAnother World" } }); controller.Create(new StaticPageInformation() { Model = new StaticPage { Id = 3, Title = "Draft Page", Content = "Hello\n=====\nI'm a draft", IsDraft = true } }); }); UsingSession((session) => { WaitForTheLastWrite <StaticPage>(session); var controller = new PagesController(new Repository(session)); var result = controller.List(); var pages = (PagedList.IPagedList <StaticPageInformation>)result.Model; Assert.AreEqual(2, pages.Count); }); }