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); }
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)); }
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>())); }