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