Ejemplo n.º 1
0
        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);
            });
        }
Ejemplo n.º 2
0
 public void ShouldDisplayFormForNewPage()
 {
     var repository = new Mock<Repository>();
     var controller = new PagesController(repository.Object);
     var result = (ViewResult)controller.Create();
     Assert.AreEqual("Create", result.ViewName);
 }
Ejemplo n.º 3
0
 public void ShouldKnowHowToDeletePage()
 {
     var id = 1;
     var repository = new Mock<Repository>();
     var controller = new PagesController(repository.Object);
     var result = (RedirectToRouteResult)controller.Delete(id);
     repository.Verify(it => it.Delete<StaticPage>(id), Times.Once());
     Assert.AreEqual("List", result.RouteValues["action"]);
 }
Ejemplo n.º 4
0
 public void ShouldKnowHowToDisplayAPage()
 {
     var id = 12;
     var repository = new Mock<Repository>();
     var savedPage = new StaticPage { Id = id, Title = "test title", Content = "some content" };
     repository.Setup(repo => repo.Get<StaticPage>(id)).Returns(savedPage);
     var controller = new PagesController(repository.Object);
     var result = controller.Details(id);
     repository.Verify(it => it.Get<StaticPage>(id), Times.Once());
     Assert.AreEqual(id, ((StaticPageInformation)result.Model).Model.Id);
 }
Ejemplo n.º 5
0
        public void ShouldHandleDuplicatePageProblem()
        {
            var repository = new Mock<Repository>();
            var duplicatePage = new StaticPage { Title = "test title", Content = "test content" };
            repository.Setup(repo => repo.Create(duplicatePage))
                      .Throws(new Raven.Client.Exceptions.NonUniqueObjectException());

            var controller = new PagesController(repository.Object);
            controller.Create(new StaticPageInformation {Model = duplicatePage});

            Assert.AreEqual(string.Format("Sorry, page {0} already exists.", duplicatePage.Title), controller.TempData["flashError"]);
        }
Ejemplo n.º 6
0
        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);
            });
        }
Ejemplo n.º 7
0
        public void ShouldKnowHowToRenderAnEditPage()
        {
            var repositoryMock = new Mock<Repository>();
            var page = new StaticPage {Id = 1, Title = "The Page"};
            repositoryMock.Setup(repo => repo.Get<StaticPage>(page.Id)).Returns(page);
            var pagesController = new PagesController(repositoryMock.Object);

            var result = pagesController.Edit(page.Id);
            var actualModel = (StaticPageInformation) result.Model;

            Assert.AreEqual(page.Title, actualModel.Model.Title);
            repositoryMock.Verify(repo => repo.Get<StaticPage>(1), Times.Once());
        }
Ejemplo n.º 8
0
 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);
 }
Ejemplo n.º 9
0
 public void ShouldStorePageWhenCreated()
 {
     var repository = new Mock<Repository>();
     var submittedPage = new StaticPage { Title = "test title", Content = "some content" };
     repository.Setup(repo => repo.Create(submittedPage)).Returns(new StaticPage { Id = 1, Title = submittedPage.Title, Content = submittedPage.Content });
     var controller = new PagesController(repository.Object);
     var result = (RedirectToRouteResult)controller.Create(new StaticPageInformation {Model = submittedPage});
     repository.Verify(it => it.Create(submittedPage), Times.Once());
     Assert.AreEqual(string.Format("Added {0}", submittedPage.Title), controller.TempData["flashSuccess"]);
     Assert.AreEqual(1, result.RouteValues["id"]);
 }
Ejemplo n.º 10
0
        public void ShouldNotStorePageWhenTitleIsInvalid()
        {
            var repository = new Mock<Repository>();
            var submittedPage = new StaticPage { Title = "", Content = "some content" };
            repository.Setup(repo => repo.Create(submittedPage)).Returns(submittedPage);

            var controller = new PagesController(repository.Object);
            ValidateViewModel(submittedPage, controller);
            Assert.IsFalse(controller.ModelState.IsValid);
        }
Ejemplo n.º 11
0
 public void ShouldKnowToRenderThePageContentAsMarkdown()
 {
     var id = 12;
     var repository = new Mock<Repository>();
     var markdown = new Markdown();
     var savedPage = new StaticPage { Id = id, Title = "test title", Content = "Hello\n=====\nWorld" };
     repository.Setup(repo => repo.Get<StaticPage>(id)).Returns(savedPage);
     var transformedContent = markdown.Transform(savedPage.Content);
     var controller = new PagesController(repository.Object);
     var result = controller.Details(id);
     Assert.AreEqual(transformedContent, ((StaticPageInformation)result.Model).Content);
 }
Ejemplo n.º 12
0
 public void ShouldKnowHowToUpdateAPage()
 {
     var repository = new Mock<Repository>();
     var existingPage = new StaticPage {Id = 1, Title = "Derping for dummies."};
     repository.Setup(repo => repo.Edit(existingPage));
     var pagesController = new PagesController(repository.Object);
     var result = pagesController.Edit(new StaticPageInformation { Model = existingPage });
     Assert.AreEqual(existingPage.Id, result.RouteValues["id"]);
     repository.Verify(repo => repo.Edit(existingPage), Times.Once());
 }