public void PollPassedToQuestionCreateView()
        {
            // Arrange
            var fakeDB = new FakePollContext();

            fakeDB.Polls     = new FakePollSet();
            fakeDB.Questions = new FakeDbSet <Question>();

            var poll = new Poll {
                ID = 1, Title = "Hello"
            };

            fakeDB.Polls.Add(poll);
            var poll2 = new Poll {
                ID = 2, Title = "world"
            };

            fakeDB.Polls.Add(poll2);

            QuestionsController controller = new QuestionsController(fakeDB);

            // Act
            ViewResult result = controller.Create("1") as ViewResult;
            CreateQuestionViewModel generatedViewModel = result.ViewData.Model as CreateQuestionViewModel;

            // Assert
            Assert.AreEqual(generatedViewModel.PollTitle, "Hello");
        }
示例#2
0
        public async Task Create_post_action_result_should_redirect_to_action_when_modelState_valid()
        {
            // Arrange
            var question = new Question
            {
                QuestionId   = 1,
                QuizId       = 1,
                QuestionText = "Test"
            };

            var httpContext = new DefaultHttpContext();

            var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>());

            var controller = new QuestionsController(_questionRepository.Object, _answerRepository.Object)
            {
                TempData = tempData
            };

            // Act
            var result = await controller.Create(question);

            // Assert
            Assert.IsType <RedirectToActionResult>(result);
        }
示例#3
0
        public void Create_action_should_return_Create_View_with_correct_model()
        {
            // Arrange
            var quizId     = 1;
            var controller = new QuestionsController(_questionRepository.Object, _answerRepository.Object);

            // act
            var result = controller.Create(quizId);

            // assert
            Assert.IsType <ViewResult>(result);
            Assert.NotNull(result);
        }
示例#4
0
        public void Create_action_should_return_BadRequest_when_quizId_is_not_valid()
        {
            // Arrange
            var controller = new QuestionsController(_questionRepository.Object, _answerRepository.Object);

            // Act
            var result = controller.Create(id: null);

            // Assert
            var badRequestObjectResult = Assert.IsType <BadRequestObjectResult>(result);
            var model = Assert.IsAssignableFrom <BadRequestObjectResult>(badRequestObjectResult);

            Assert.Equal(model.StatusCode, badRequestObjectResult.StatusCode);
            Assert.NotNull(result);
        }
        public void GivenAValidQuestionAndNoOneIsLoggedIn_Create_ReturnsAResultView()
        {
            // Arrange.
            var questionService     = new QuestionService(DocumentSession);
            var questionsController = new QuestionsController(DocumentSession, questionService);

            ControllerUtilities.SetUpControllerContext(questionsController);
            var createInputModel = new QuestionInputModel();

            // Act.
            var result = questionsController.Create(createInputModel) as ViewResult;

            // Assert.
            Assert.NotNull(result);
            Assert.Equal("Create", result.ViewName);
        }
        public void GivenAnInvalidQuestion_Create_ReturnsAResultView()
        {
            // Arrange.
            var questionService     = new QuestionService(DocumentSession);
            var questionsController = new QuestionsController(DocumentSession, questionService);

            ControllerUtilities.SetUpControllerContext(questionsController);
            var createInputModel = new QuestionInputModel();

            // Now pretend the model binding raised an error with the input model.
            questionsController.ModelState.AddModelError("key", "error message");

            // Act.
            var result = questionsController.Create(createInputModel) as ViewResult;

            // Assert.
            Assert.NotNull(result);
            Assert.Equal("Create", result.ViewName);
        }
示例#7
0
        public async Task Create_post_action_result_should_return_ViewResult_with_correct_Model_type_when_modelState_not_valid()
        {
            // Arrange
            var question = new Question
            {
                QuestionId = 6,
            };

            // Arrange
            var controller = new QuestionsController(_questionRepository.Object, _answerRepository.Object);

            controller.ModelState.AddModelError("Title", "Title is required");

            // Act
            var result = await controller.Create(question);

            // Assert
            var viewResult = Assert.IsType <ViewResult>(result);

            Assert.IsAssignableFrom <Question>(viewResult.ViewData.Model);
        }
示例#8
0
        public async Task Create_New_Question()
        {
            // Arrange
            var fixture = new Fixture();
            var context = GetFakeContext();

            var questionDbSetMock = new Mock <DbSet <Question> >();
            var answerDbSetMock   = new Mock <DbSet <Answer> >();

            context.Questions = questionDbSetMock.Object;
            context.Answers   = answerDbSetMock.Object;

            var controller = new QuestionsController(context);

            // Act
            var result = await controller.Create(fixture.Create <QuestionCreationViewModel>());

            // Assert
            Assert.IsAssignableFrom <RedirectToActionResult>(result);
            questionDbSetMock.Verify(x => x.AddAsync(It.IsNotNull <Question>(), default), Times.Once);
            answerDbSetMock.Verify(x => x.AddRangeAsync(It.IsNotNull <List <Answer> >(), default), Times.Once);
        }
        public void GivenAValidQuestionAndALoggedInUser_Create_AddsTheQuestionAndRedicects()
        {
            // Arrange.
            var questionService     = new QuestionService(DocumentSession);
            var questionsController = new QuestionsController(DocumentSession, questionService);

            ControllerUtilities.SetUpControllerContext(questionsController, "users/1");
            var createInputModel =
                new QuestionInputModel()
            {
                Subject = "aaaad fdds fsd ds",
                Content = "sdhfskfhksd sd",
                Tags    = "ahdakjdh"
            };

            // Act.
            var result = questionsController.Create(createInputModel) as RedirectToRouteResult;

            // Assert.
            Assert.NotNull(result);
            Assert.Equal("Index", result.RouteValues["action"]);
        }
        public void Create_GET_NoQuestionDefinitionSpecified_ReturnsView()
        {
            // Arrange
            var testQuestionDefinition = new IntegerQuestionDefinition {
                DefaultNextQuestionId = QuestionDefinitionId.ChildAge
            };

            _questionDefinitionService.GetFirstDefinition().Returns(testQuestionDefinition);

            // Act
            var result = _controller.Create(Guid.NewGuid(), null) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
示例#11
0
        public void Create()
        {
            var result = controller.Create() as ViewResult;

            Assert.AreEqual("Create", result.ViewName);
        }