public void TestPostPostQuestionValidModel()
        {
            //Arrange
            PostQuestionViewModel viewModel = new PostQuestionViewModel
            {
                Question = new Question
                {
                    Subject = "Have to prefill this otherwise model state is invalid",
                    Text = "Have to prefill otherwise model state is invalid"
                }
            };
            Mock<IForumRepository> mockRepo = new Mock<IForumRepository>();
            mockRepo.Setup(x => x.SaveQuestion(It.IsAny<Question>())).Returns(1);
            ForumController target = new ForumController(mockRepo.Object);

            //Act
            RedirectToRouteResult result = target.PostQuestion(viewModel) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Question", result.RouteValues["Action"]);
            Assert.IsTrue(target.ModelState.IsValid);
            mockRepo.Verify(x => x.SaveQuestion(It.IsAny<Question>()));
        }
Example #2
0
        public ActionResult PostQuestion(PostQuestionViewModel model)
        {
            if (ModelState.IsValid)
            {
                model.Question.Text = model.Question.Text.Replace(Environment.NewLine, "<br />");
                int questionId = repository.SaveQuestion(model.Question);
                return RedirectToAction("Question", new { id = questionId });
            }

            return View(model);
        }