public void AddCommentSavesCommentToPostRepositoryAndRedirects() { var postUrl = new PostUrlViewModel { Year = 2013, Month = 4, UrlTitle = "a-test" }; var returnedPost = new Post(); Mock.Get(repository).Setup(r => r.SinglePost(postUrl.Url)).Returns(returnedPost); var model = new PostViewModel { CommenterName = "George", CommenterEmail = "*****@*****.**", CommenterWebsite = "vandelay.com", Comment = "A comment" }; var result = controller.AddComment(postUrl, model) as RedirectToRouteResult; Assert.That(returnedPost.Comments, Has.Exactly(1).Matches <Comment>(c => c.Text == model.Comment && c.Name == model.CommenterName && c.Email == model.CommenterEmail && c.Website == model.CommenterWebsite)); Assert.NotNull(result); Assert.That(result.RouteValues["action"], Is.EqualTo("Single")); Mock.Get(repository).Verify(r => r.Save(returnedPost)); }
public void Given_inValid_AddCommentViewModel_When_AddComent_Returns_SinglePost() { //Given var model = new AddCommentViewModel(); _postController.ModelState.AddModelError(string.Empty, "There is an error with your model, boy!"); //When var result = _postController.AddComment(model) as RedirectToRouteResult; //Then Assert.NotNull(result); Assert.AreEqual("Post", result.RouteValues["controller"].ToString()); Assert.AreEqual("SinglePost", result.RouteValues["action"].ToString()); }