public void Put_CorrectViewModelErrorDuringProcessing_ShouldReturnNotFound()
        {
            var question = new Question
            {
                Id   = 1,
                Text = "Text1"
            };

            _mockRepo.Setup(x => x.UpdateQuestion(question)).Returns <Question>(null);

            var result = _sut.Put(question.Adapt <QuestionViewModel>()).Result;

            Assert.IsNotNull(result);
            Assert.IsInstanceOf <NotFoundObjectResult>(result);
        }
        public void Put_WhenErrorDuringProcessing_ShouldReturnStatusCode500()
        {
            var questionId = 1;
            var question   = new Question
            {
                Id   = 1,
                Text = "Text1"
            };

            _mockRepo.Setup(x => x.UpdateQuestion(It.Is <Question>(q => q.Id == questionId))).Throws(new Exception());

            var result = _sut.Put(question.Adapt <QuestionViewModel>()).Result as StatusCodeResult;

            Assert.IsNotNull(result);
            Assert.AreEqual(result.StatusCode, 500);
        }
        public void Put_WhenCorrectViewModelGiven_ShouldReturnJsonViewModel()
        {
            var questionId = 1;
            var question   = new Question
            {
                Id   = 1,
                Text = "Text1"
            };

            _mockRepo.Setup(x => x.UpdateQuestion(It.Is <Question>(q => q.Id == questionId))).Returns(Task.FromResult(question));

            var result = _sut.Put(question.Adapt <QuestionViewModel>()).Result as JsonResult;

            Assert.IsNotNull(result);
            var viewModel = result.GetObjectFromJsonResult <QuestionViewModel>();

            Assert.AreEqual(viewModel.Text, question.Text);
            Assert.AreEqual(viewModel.Id, question.Id);
        }
Ejemplo n.º 4
0
        public IActionResult Put([FromBody] QuestionViewModel model)
        {
            if (model == null)
            {
                // Return a generic HTTP Status 500 (Server Error)
                return(new StatusCodeResult(500));
            }

            var question = new Question
            {
                QuizId           = model.QuizId,
                Text             = model.Text,
                Notes            = model.Notes,
                CreatedDate      = DateTime.Now,
                LastModifiedDate = DateTime.Now
            };

            _dbContext.Questions.Add(question);
            _dbContext.SaveChanges();

            return(new JsonResult(question.Adapt <QuestionViewModel>(), JsonSettings));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Post([FromBody] QuestionViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (model.Id != 0)
            {
                ModelState.AddModelError("id", "for adding question id should not be set");
                return(BadRequest(ModelState));
            }
            if (model.QuizId == 0)
            {
                ModelState.AddModelError("quizId", "for adding question quizId should be set");

                return(BadRequest(ModelState));
            }

            var quiz = _context.Quizzes.Find(model.QuizId);

            if (quiz == null)
            {
                return(NotFound("quiz not found"));
            }

            var newQuestion = new Question
            {
                Text   = model.Text,
                QuizId = model.QuizId
            };

            _context.Add(newQuestion);

            await _context.SaveChangesAsync();

            return(Ok(newQuestion.Adapt <QuizViewModel>()));
        }