Edit() private method

private Edit ( PostInput input ) : System.Web.Mvc.ActionResult
input MyStory.ViewModels.PostInput
return System.Web.Mvc.ActionResult
Esempio n. 1
0
        public void Edit_Method_Should_Validate_Model()
        {
            // Arrange
            _controller = new PostController();
            _controller.ModelState.AddModelError("modelerror", "modelerror");

            var result = _controller.Edit(new PostInput()) as ViewResult;
            result.ViewName.SequenceEqual("Edit");
            result.ViewData.ModelState.IsValid.ShouldBeFalse();
        }
Esempio n. 2
0
        public void Edit_Methood_Should_Return_Postmodel()
        {
            // Arrange
            FunctionalTestHelper.CreateAutomapperMap();
            FunctionalTestHelper.CreateAccountAndBlog(_dbContext);
            FunctionalTestHelper.CreateOnePost(_dbContext);

            var mock = new Mock<ControllerContext>();
            mock.SetupGet(x => x.HttpContext.Request.IsAuthenticated).Returns(true);
            mock.SetupGet(x => x.HttpContext.User.Identity.Name).Returns(FunctionalTestHelper.AccountEmail);

            _controller = new PostController();
            _controller.ControllerContext = mock.Object;

            // Act
            var result = _controller.Edit(1) as ViewResult;
            var post = result.Model as PostInput;

            // Assert
            post.Title.ShouldEqual(FunctionalTestHelper.PostTitle);
            post.Content.ShouldEqual(FunctionalTestHelper.PostContent);
            "Edit".ShouldEqual(result.ViewName);
        }
Esempio n. 3
0
        public void Edit_Method_Should_Save_Post()
        {
            // Arrange
            FunctionalTestHelper.CreateAutomapperMap();
            FunctionalTestHelper.CreateAccountAndBlog(_dbContext);
            FunctionalTestHelper.CreateOnePost(_dbContext);

            _controller = new PostController(new TagService());
            _controller.SetFakeControllerContext();

            // valueprovider is needed for TryUpdateModel() method
            FormCollection form = new FormCollection();
            _controller.ValueProvider = form.ToValueProvider();

            var input = new PostInput
            {
                Content = "edited content",
                Id = 1,
                Title = "edited title",
            };

            // Act
            var result = _controller.Edit(input) as RedirectToRouteResult;

            // Assert
            result.RouteValues["controller"].ShouldEqual("Post");
            result.RouteValues["action"].ShouldEqual("Detail");
            var post = _dbContext.Posts.SingleOrDefault(p => p.Id == 1);
            post.ShouldNotBeNull();
            post.Title.Contains("edited");
            post.Content.Contains("edited");
        }