public void TestGetEditQuestionValidSetup() { //Arrange string id = "12345678"; Question fakeQuestion = new Question { Text = "Random question text<br />", AppUser = new AppUser { Id = id } }; Mock<IForumRepository> mockRepo = new Mock<IForumRepository>(); mockRepo.Setup(x => x.FindQuestionIncludingAppUser(It.IsAny<int>())).Returns(fakeQuestion); mockRepo.Setup(x => x.GetCurrentlyLoggedInUser()).Returns(id); ForumController target = new ForumController(mockRepo.Object); //Act ViewResult result = target.EditQuestion(0) as ViewResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("", result.ViewName); Assert.IsInstanceOfType(result.Model, typeof(EditQuestionViewModel)); EditQuestionViewModel returnedModel = result.Model as EditQuestionViewModel; Assert.AreEqual("Random question text\n", returnedModel.Text); }
public void TestGetPostQuestion() { //Arrange Mock<IForumRepository> mockRepo = new Mock<IForumRepository>(); mockRepo.Setup(x => x.GetCurrentlyLoggedInUser()).Returns(""); mockRepo.Setup(x => x.GetPostQuestionViewModel()).Returns(new PostQuestionViewModel()); ForumController target = new ForumController(mockRepo.Object); //Act ViewResult result = target.PostQuestion() as ViewResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("", result.ViewName); mockRepo.Verify(x => x.GetCurrentlyLoggedInUser(), Times.Once()); mockRepo.Verify(x => x.GetPostQuestionViewModel(), Times.Once()); }
public void TestIndex() { //Arrange List<Question> questions = new List<Question>(); for (int i = 1; i <= 7; i++) { questions.Add(new Question()); } Mock<IForumRepository> mockRepo = new Mock<IForumRepository>(); mockRepo.Setup(x => x.GetQuestions(It.IsAny<string>(), It.IsAny<int>(), It.IsAny<string>())). Returns(questions); ForumController target = new ForumController(mockRepo.Object); //Act ViewResult result = target.Index("", 0, "") as ViewResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("", result.ViewName); Assert.AreEqual(7, result.ViewBag.NumOfQuestions); }
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>())); }
public void TestQuestion() { //Arrange Mock<IForumRepository> mockRepo = new Mock<IForumRepository>(); mockRepo.Setup(x => x.GetQuestion(It.IsAny<int>())).Returns(new QuestionCommentsViewModel()); ForumController target = new ForumController(mockRepo.Object); //Act ViewResult result = target.Question(0) as ViewResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("", result.ViewName); mockRepo.Verify(x => x.GetQuestion(It.IsAny<int>()), Times.Once()); }