public ActionResult Create(QuestionInputModel inputModel) { try { if (ModelState.IsValid) { var question = Mapper.Map<QuestionInputModel, Core.Entities.Question>(inputModel); question.CreatedByUserId = User.Identity.UserId; _questionService.Store(question); DocumentSession.SaveChanges(); return RedirectToAction("Index", "Home", new {area = ""}); } } catch (Exception exception) { ModelState.AddModelError("RuRoh", exception.Message); } var viewModel = new QuestionViewModel(User.Identity); Mapper.Map(inputModel, viewModel); return View("Create", viewModel); }
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); }
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"]); }