public int SaveNewQuiz(AddNewQuizVM addNewQuizVM)
        {
            Quiz quiz = new Quiz {
                QuizName = addNewQuizVM.QuizName, UserId = addNewQuizVM.UserId
            };

            context.Add(quiz);
            context.SaveChanges();
            return(quiz.QuizId);
        }
Example #2
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);
        }
        public AddNewQuizVM GetNewQuiz(int QuizId)
        {
            var result = context.Quizzes.SingleOrDefault(q => q.QuizId == QuizId);

            if (result != null)
            {
                AddNewQuizVM quiz = new AddNewQuizVM {
                    QuizId = result.QuizId, QuizName = result.QuizName, UserId = result.UserId
                };
                return(quiz);
            }
            else
            {
                return(null);
            }
        }
Example #4
0
        public void AddNewQuiz_InputNewAddNewQuizVM_StoreToInMemoryDb()
        {
            //Arrange
            CreateQuestionsController createQuestionsController = setupBeforeTestWithFakeDb();
            List <NewQuestionVM>      list = new List <NewQuestionVM>();

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

            //Act
            AddNewQuizVM addNewQuizVM = new AddNewQuizVM {
                QuizName = "TestQuiz", UserId = "1"
            };

            createQuestionsController.AddNewQuiz(addNewQuizVM);
            var result = inMemoryDatabase.Quizzes.FirstOrDefault();

            //Assert
            Assert.Equal(addNewQuizVM.QuizName, result.QuizName);
            Assert.Equal(addNewQuizVM.UserId, result.UserId);
        }
Example #5
0
        public IActionResult AddNewQuiz(AddNewQuizVM addNewQuizVM)
        {
            var UserId = userManagerRepository.GetUserIdFromIdentity(HttpContext?.User);

            if (UserId == null)
            {
                deleteQuestionsAndAnswersStoredInSession();
                return(RedirectToAction("Index", "Main"));
            }
            addNewQuizVM.UserId = UserId;
            int QuizId = repository.SaveNewQuiz(addNewQuizVM);

            addNewQuizVM.QuizId = QuizId;
            MyContextAccessor.HttpContext.Session.SetJson("CreateNewQuizId", addNewQuizVM);
            List <NewQuestionVM> list = new List <NewQuestionVM>();

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

            return(View(nameof(Add), question));
        }
Example #6
0
        public void Add_FinishedPressedQuestionAdded_RedirectedToShowNewQuizStored()
        {
            //Arrange
            CreateQuestionsController createQuestionsController = setupBeforeTestWithFakeDb();
            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()
            {
                QuestionNr = 1,
                Answer1    = "A1",
                Answer2    = "A2",
                Answer3    = "A3",
                Answer4    = "A4",
                RadioButtonAlternativeAnswer = 1,
                QuestionString = "Test"
            };

            //Act
            NewQuestionVM          newQuestion = new NewQuestionVM();
            RedirectToActionResult result      = (RedirectToActionResult)createQuestionsController.ButtonFinished(question, newQuestion);

            //Assert
            Assert.Equal("ShowNewQuizStored", result.ActionName);
            Assert.Equal("Main", result.ControllerName);
        }
Example #7
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);
        }