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