Пример #1
0
        public void Add_FinishedPressedWhenOnPage1NoQuestionAdded_ReturnInvalidModelstate()
        {
            //Arrange
            var mockHttpContext = new Mock <IHttpContextAccessor>();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();
            var inMemoryDatabase = InMemoryDatabase.GetContextFromInMemoryDatabase();
            CreateQuestionsController createQuestionsController = new CreateQuestionsController(fakeUserManagerRepository, new EFQuestionRepository(inMemoryDatabase), mockHttpContext.Object);

            List <NewQuestionVM> list = new List <NewQuestionVM>();

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuestionsList", list); //storing a list of empty NewQuestionVM objects in teh session object
            NewQuestionVM question = new NewQuestionVM();

            //Act
            NewQuestionVM newQuestion = new NewQuestionVM();

            createQuestionsController.ButtonFinished(question, newQuestion);

            //Assert
            Assert.False(createQuestionsController.ModelState.IsValid);
        }
Пример #2
0
        public void Add_FinishedPressedWhenOnPage1NoQuestionAdded_GoTo()
        {
            //Arrange
            var mockHttpContext = new Mock <IHttpContextAccessor>();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();
            var inMemoryDatabase = InMemoryDatabase.GetContextFromInMemoryDatabase();
            CreateQuestionsController createQuestionsController = new CreateQuestionsController(fakeUserManagerRepository, new EFQuestionRepository(inMemoryDatabase), mockHttpContext.Object);

            List <NewQuestionVM> list = new List <NewQuestionVM>();

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuestionsList", list); //storing a list of empty NewQuestionVM objects in teh session object
            NewQuestionVM question = new NewQuestionVM()
            {
                QuestionNr = 1,
                Answer1    = "",
                Answer2    = "",
                Answer3    = "A3",
                Answer4    = "",
                RadioButtonAlternativeAnswer = 1,
                QuestionString = "Test"
            };

            //Act
            NewQuestionVM newQuestion = new NewQuestionVM();
            var           result      = createQuestionsController.ButtonFinished(question, newQuestion) as ViewResult;

            //Assert
            Assert.Equal("Add", result.ViewName);
        }
Пример #3
0
        public void Add_FinishedPressedWhenOnPage1AndOnlyQuestion1IsEnteredCorrectly_StoreToInMemoryDb()
        {
            //Arrange
            var mockHttpContext = new Mock <IHttpContextAccessor>();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();
            var inMemoryDatabase = InMemoryDatabase.GetContextFromInMemoryDatabase();
            CreateQuestionsController createQuestionsController = new CreateQuestionsController(fakeUserManagerRepository, new EFQuestionRepository(inMemoryDatabase), mockHttpContext.Object);

            AddNewQuizVM addNewQuizVM = new AddNewQuizVM {
                QuizId = 1, QuizName = "TestQuiz", UserId = "UserId-GUID"
            };

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuizId", addNewQuizVM);
            inMemoryDatabase.Quizzes.Add(new Quiz {
                QuizId = addNewQuizVM.QuizId, QuizName = addNewQuizVM.QuizName, UserId = addNewQuizVM.UserId
            });
            inMemoryDatabase.SaveChanges();


            List <NewQuestionVM> list = new List <NewQuestionVM>();

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuestionsList", list); //storing a list of empty NewQuestionVM objects in teh session object
            NewQuestionVM question = new NewQuestionVM()                                                             // filling the list
            {
                QuestionNr = 1,
                Answer1    = "A1",
                Answer2    = "A2",
                Answer3    = "A3",
                Answer4    = "A4",
                RadioButtonAlternativeAnswer = 3,
                QuestionString = "Test"
            };

            list.Add(question);

            //Act
            NewQuestionVM newQuestion = new NewQuestionVM();

            createQuestionsController.ButtonFinished(question, newQuestion);
            var result = inMemoryDatabase.Questions.FirstOrDefault();

            //Assert
            Assert.Equal(question.QuestionNr, result.QuestionNr);
            Assert.Equal(question.Answer1, result.Answers.ElementAt(0).AnswerText);
            Assert.Equal(question.Answer2, result.Answers.ElementAt(1).AnswerText);
            Assert.Equal(question.Answer3, result.Answers.ElementAt(2).AnswerText);
            Assert.Equal(question.Answer4, result.Answers.ElementAt(3).AnswerText);
            Assert.Equal(question.RadioButtonAlternativeAnswer, result.RadioButtonAlternativeAnswer);
            Assert.Equal(question.QuestionString, result.QuestionString);
        }
Пример #4
0
        private CreateQuestionsController setupBeforeTests()
        {
            var mock            = new Mock <IQuestionRepository>();
            var mockHttpContext = new Mock <IHttpContextAccessor>();
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            return(new CreateQuestionsController(fakeUserManagerRepository, mock.Object, mockHttpContext.Object));
        }
Пример #5
0
        private CreateQuestionsController setupBeforeTestWithFakeDb()
        {
            var mockHttpContext = new Mock <IHttpContextAccessor>();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();

            inMemoryDatabase = InMemoryDatabase.GetContextFromInMemoryDatabase();
            return(new CreateQuestionsController(fakeUserManagerRepository, new EFQuestionRepository(inMemoryDatabase), mockHttpContext.Object));
        }
Пример #6
0
        public void Add_XXXXXXFinishedPressedWhenOnPage1TwoQuestionsAddedInSessionAndFormFilledWithValidData_StoreToInMemoryDb()
        {
            //Arrange
            var mockHttpContext = new Mock <IHttpContextAccessor>();

            mockHttpContext.Setup(x => x.HttpContext.Session).Returns(new MyTestSession()
            {
                Id = "abba1", IsAvailable = true
            });
            IUserManagerWrapper fakeUserManagerRepository = new FakeUserManagerRepository();
            var inMemoryDatabase = InMemoryDatabase.GetContextFromInMemoryDatabase();
            CreateQuestionsController createQuestionsController = new CreateQuestionsController(fakeUserManagerRepository, new EFQuestionRepository(inMemoryDatabase), mockHttpContext.Object);

            AddNewQuizVM addNewQuizVM = new AddNewQuizVM {
                QuizId = 1, QuizName = "TestQuiz", UserId = "UserId-GUID"
            };

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuizId", addNewQuizVM);
            inMemoryDatabase.Quizzes.Add(new Quiz {
                QuizId = addNewQuizVM.QuizId, QuizName = addNewQuizVM.QuizName, UserId = addNewQuizVM.UserId
            });
            inMemoryDatabase.SaveChanges();

            List <NewQuestionVM> list = new List <NewQuestionVM>();

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuestionsList", list); //storing a list of empty NewQuestionVM objects in teh session object


            NewQuestionVM question = new NewQuestionVM() // filling the list
            {
                QuestionNr = 1,
                Answer1    = "A1",
                Answer2    = "A2",
                Answer3    = "A3",
                Answer4    = "A4",
                RadioButtonAlternativeAnswer = 3,
                QuestionString = "Test"
            };

            list.Add(question);

            question = new NewQuestionVM() // filling the list
            {
                QuestionNr = 2,
                Answer1    = "A1-2",
                Answer2    = "A2-2",
                Answer3    = "A3-2",
                Answer4    = "A4-2",
                RadioButtonAlternativeAnswer = 2,
                QuestionString = "Test2"
            };
            list.Add(question);

            createQuestionsController.MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuestionsList", list); //storing a list of empty NewQuestionVM objects in teh session object

            NewQuestionVM question2 = new NewQuestionVM()                                                            // filling the list
            {
                QuestionNr = 1,
                Answer1    = "A1-1",
                Answer2    = "A2-1",
                Answer3    = "A3",
                Answer4    = "A4",
                RadioButtonAlternativeAnswer = 3,
                QuestionString = "Test"
            };

            //Act
            NewQuestionVM newQuestion = new NewQuestionVM();

            createQuestionsController.ButtonFinished(question2, newQuestion);
            var result = inMemoryDatabase.Questions.Count();

            //Assert
            Assert.Equal(2, result);
        }