Inheritance: RavenOverflow.Web.Controllers.RavenDbController
        public void GivenAnInValidQuestion_Create_ReturnsAResultView()
        {
            using (IDocumentSession documentSession = DocumentStore.OpenSession())
            {
                // Arrange.
                IQuestionService questionService = new QuestionService(documentSession);
                var questionsController = new QuestionsController(documentSession, questionService);
                ControllerUtilities.SetUpControllerContext(questionsController);
                var createInputModel = new CreateInputModel
                                           {
                                               Content = "Some content",
                                               Subject = null,
                                               // RuRoh - dat ist missin'
                                               Tags = "tag1 tag2 tag3-3-3"
                                           };

                // 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 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 GivenAValidQuestionAndNoOneIsLoggedIn_Create_ReturnsAResultView()
        {
            // Arrange.
            IQuestionService questionService = new QuestionService();
            var questionsController = new QuestionsController(DocumentStore, questionService);
            ControllerUtilities.SetUpControllerContext(questionsController);
            var createInputModel = new CreateInputModel
                                   {
                                       Content = "Some content",
                                       Subject = "Subject",
                                       Tags = "tag1 tag2 tag3-3-3"
                                   };
            // Act.
            var result = questionsController.Create(createInputModel) as ViewResult;

            // Assert.
            Assert.NotNull(result);
            Assert.Equal("Create", result.ViewName);
        }
        public void GivenAValidQuestionAndALoggedInUser_Create_AddsTheQuestionAndRedicects()
        {
            // Arrange.
            IQuestionService questionService = new QuestionService();
            var questionsController = new QuestionsController(DocumentStore, questionService);
            ControllerUtilities.SetUpControllerContext(questionsController, "users/1");
            var createInputModel = new CreateInputModel
                                   {
                                       Content = "Some content",
                                       Subject = "Subject",
                                       Tags = "tag1 tag2 tag3-3-3"
                                   };
            // Act.
            var result = questionsController.Create(createInputModel) as RedirectToRouteResult;

            // Assert.
            Assert.NotNull(result);
            Assert.Equal("Index", result.RouteValues["action"]);
        }
            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"]);
            }