public void ReplyTest( [Values(null, "TestPostID")] string postID) { Post post; if (postID != null) { post = new Post(); post.ID = postID; } else { post = null; } var originalPostCommentID = "TestPostCommentID"; var originalPostComment = new PostComment(); originalPostComment.Post = post; originalPostComment.ID = originalPostCommentID; originalPostComment.Title = "Original title"; originalPostComment.Body = "Original body"; var postCommentID = Guid.Empty.ToString(); var postComment = new PostComment(); postComment.ID = postCommentID; _postCommentRepositoryMock.Expect(r => r.Get(originalPostCommentID)).Return(originalPostComment); if (postID != null) { _postRepositoryMock.Expect(r => r.Get(postID)).Return(post); } _postCommentRepositoryMock.Expect(r => r.Create()).Return(postComment); var result = TestedController.Reply(originalPostCommentID); VerifyViewResult(result, "Edit", typeof(EditPostCommentData)); var resultModel = (EditPostCommentData)((ViewResult)result).ViewData.Model; Assert.That(resultModel.EditMode, Is.EqualTo(EditMode.Add)); Assert.That(resultModel.PostComment.Post, Is.EqualTo(originalPostComment.Post)); Assert.That(resultModel.PostComment.Title, Is.EqualTo("Re: Original title")); Assert.That(resultModel.PostComment.Body, Is.EqualTo(Utils.QuoteBody(originalPostComment.Body))); }