Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }
Пример #4
0
        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>()));
        }
Пример #5
0
        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());
        }