public static QuestionEF ToEF(this QuestionTO question) { if (question is null) { throw new ArgumentNullException(nameof(question)); } var q = new QuestionEF(); q.Id = question.Id; q.NameEnglish = question.Libelle.English; q.NameFrench = question.Libelle.French; q.NameDutch = question.Libelle.Dutch; q.Position = question.Position; q.Type = question.Type; //q.Form.Id = question.FormId; if (question.Propositions != null) { q.Propositions = question.Propositions.Select(x => x.ToEF()).ToList(); q.Propositions.Select(x => x.Question = q); } return(q); }
public void Question_ArchiveSuccesfull() { var options = new DbContextOptionsBuilder <QAndAContext>().UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name).Options; var context = new QAndAContext(options); IQuestionRepository QRepo = new QuestionRepository(context); var question = new QuestionTO { Questioning = "Gif or Gif ?", CreationDate = DateTime.Now, State = State.Pending, IsArchived = false, LostSoul = new UserTO { FirstName = "William", LastName = "Shake" } }; var added = QRepo.Insert(question); QRepo.Save(); var result = QRepo.Archive(added); QRepo.Save(); Assert.IsTrue(QRepo.Get(added.Id).IsArchived); }
public QuestionTO AskAQuestion(QuestionTO Question) { var date = DateTime.Now; Question.Date = date; return(questionRepository.Create(Question)); }
public void CreateQuestion_Successful() { // ARRANGE var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); //ACT DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var result = questionRepository.Create(question); //ASSERT Assert.IsNotNull(result); Assert.AreEqual(1, result.Id); Assert.AreEqual("Je n'arrive pas à faire un test", result.Message); Assert.AreEqual("Problème avec Tests", result.Title); Assert.AreEqual(date, result.Date); Assert.AreEqual(false, result.IsResolved); Assert.AreEqual(1, result.AuthorId); }
public void CreateAnswer_AddExistingAnswer_DoNotInsertTwiceInDb() { //ARRANGE var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); IAnswerRepository answerRepository = new AnswerRepository(context); DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var addedQuestion = questionRepository.Create(question); context.SaveChanges(); var answer = new AnswerTO { Message = "En fait, c'est facile il faut toujorus faire des tests", AuthorId = 2, AssociatedQuestion = addedQuestion, }; var result = answerRepository.Create(answer); context.SaveChanges(); //ACT answerRepository.Create(result); context.SaveChanges(); //ASSERT Assert.AreEqual(1, context.Answers.Count()); }
public void GetQuestionById_Successful() { var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); //ARRANGE DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test!", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var question2 = new QuestionTO { IsResolved = false, Message = "Comment créer un projet MVC 6?", Title = "MVC6", Date = date, AuthorId = 2 }; var question3 = new QuestionTO { IsResolved = false, Message = "Comment faire boucle foreach?", Title = "foreach", Date = date, AuthorId = 2 }; var addedQuestion = questionRepository.Create(question); var addedQuestion2 = questionRepository.Create(question2); var addedQuestion3 = questionRepository.Create(question3); context.SaveChanges(); //ACT var test = questionRepository.GetById(2); //ASSERT Assert.AreEqual("Comment créer un projet MVC 6?", test.Message); }
public void AnsweringQuestion_Successful() { var mockAnswerRepository = new Mock <IAnswerRepository>(); mockAnswerRepository.Setup(u => u.Create(It.IsAny <AnswerTO>())) .Returns(MockAnswer); var mockQuestionRepository = new Mock <IQuestionRepository>(); mockQuestionRepository.Setup(u => u.GetById(It.IsAny <int>())) .Returns(MockQuestion); DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var answer2 = new AnswerTO { Message = "En fait, c'est facile il faut toujorus faire des tests", AuthorId = 2, AssociatedQuestion = question, }; var askUC = new AskUC(mockAnswerRepository.Object, mockQuestionRepository.Object); var addedAnswer = askUC.AnsweringQuestion(1, answer2); Assert.IsNotNull(addedAnswer); mockAnswerRepository.Verify((m => m.Create(It.IsAny <AnswerTO>())), Times.Once()); }
public void Question_UpdateCorrect() { var options = new DbContextOptionsBuilder <QAndAContext>().UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name).Options; var context = new QAndAContext(options); IQuestionRepository QRepo = new QuestionRepository(context); var question = new QuestionTO { Questioning = "Am I a construction vehicule ?", CreationDate = DateTime.Now, State = State.Pending, IsArchived = false, LostSoul = new UserTO { FirstName = "Stan", LastName = "The Cat" } }; var insertedQuestion = QRepo.Insert(question); QRepo.Save(); insertedQuestion.Questioning = "Stupid Question"; var result = QRepo.Update(insertedQuestion); QRepo.Save(); Assert.AreEqual("Stupid Question", QRepo.Get(result.Id).Questioning); }
public void ModifyQuestion_Successful() { var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); //ACT DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var result = questionRepository.Create(question); context.SaveChanges(); //ACT result.IsResolved = true; var test = questionRepository.Modify(result); context.SaveChanges(); //ASSERT Assert.AreEqual(true, test.IsResolved); }
public QuestionTO Modify(QuestionTO entity) { if (entity is null) { throw new ArgumentNullException(nameof(entity)); } if (entity.Id <= 0) { throw new ArgumentException("Question To Update Invalid Id"); } if (!askContext.Questions.Any(x => x.Id == entity.Id)) { throw new KeyNotFoundException($"Update(QuestionTO) Can't find Question to update."); } var editedEntity = askContext.Questions.FirstOrDefault(e => e.Id == entity.Id); if (editedEntity != default) { entity.ToTrackedEF(editedEntity); } askContext.SaveChanges(); return(editedEntity.ToTransferObject()); }
public void ToTEF_ProvidingNull_ThrowException() { //ARRANGE QuestionTO question = null; //ACT Assert.ThrowsException <ArgumentNullException>(() => question.ToEF()); }
public void ToTrackedEF_ProvidingNullEF_ThrowException() { //ARRANGE QuestionTO question = null; QuestionEF questionToModify = null; //ACT Assert.ThrowsException <ArgumentNullException>(() => question.ToTrackedEF(questionToModify)); }
public QuestionTO MockQuestion() { DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test!", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; return(question); }
public bool Remove(QuestionTO entity) { if (entity is null) { throw new ArgumentNullException(nameof(entity)); } return(Remove(entity.Id)); }
public AnswerTO MockAnswer() { DateTime date = DateTime.Now; var question = new QuestionTO { Id = 1, IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; return(new AnswerTO { Message = "En fait, c'est facile il faut toujorus faire des tests", AuthorId = 2, AssociatedQuestion = question, }); }
public void ToTrackedEF_ProvidingNullTO_ThrowException() { //ARRANGE QuestionTO question = null; DateTime date = DateTime.Now; var questionToModify = new QuestionEF { Id = 1, IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; //ACT Assert.ThrowsException <ArgumentNullException>(() => question.ToTrackedEF(questionToModify)); }
private static QuestionTO MapElement(DataRow item) { QuestionTO question = new QuestionTO() { ID = Convert.ToInt32(item["ID"]), Text = item["Text"].ToString(), Type = item["Type"].ToString() }; question.Answers = GetAnswers(question.ID); return(question); }
public QuestionTO DeletingQuestion(int UserId, QuestionTO Question) { if (UserId == Question.AuthorId) { Question.IsDeleted = true; var modifiedEntity = questionRepository.Modify(Question); return(modifiedEntity); } else { throw new Exception("You can't delete this question because your are not the author of this question"); } }
public void GetALlAnswers_Successful() { //ARRANGE var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); IAnswerRepository answerRepository = new AnswerRepository(context); //ACT DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var question2 = new QuestionTO { IsResolved = false, Message = "Comment créer un projet MVC 6", Title = "MVC6", Date = date, AuthorId = 2 }; var question3 = new QuestionTO { IsResolved = false, Message = "Comment faire boucle foreach", Title = "foreach", Date = date, AuthorId = 2 }; var addedQuestion = questionRepository.Create(question); var addedQuestion2 = questionRepository.Create(question2); var addedQuestion3 = questionRepository.Create(question3); context.SaveChanges(); var answer = new AnswerTO { Message = "En fait, c'est facile il faut toujorus faire des tests", AuthorId = 2, AssociatedQuestion = addedQuestion, }; var answer2 = new AnswerTO { Message = "Oui c'est trop facile les tests avec InMemory", AuthorId = 3, AssociatedQuestion = addedQuestion, }; var answer3 = new AnswerTO { Message = "Tu dois d'abord créer un projet web app avec .Net Core", AuthorId = 1, AssociatedQuestion = addedQuestion2, }; var addedAnswer = answerRepository.Create(answer); var addedAnswer2 = answerRepository.Create(answer2); var addedAnswer3 = answerRepository.Create(answer3); context.SaveChanges(); //Archiving the question related to the answer 3 addedQuestion2.IsResolved = true; questionRepository.Modify(addedQuestion2); context.SaveChanges(); //ACT var test = answerRepository.GetAll(); //ASSERT Assert.AreEqual(3, test.Count()); }
public QuestionTO Add(QuestionTO Entity) { if (Entity is null) { throw new ArgumentNullException(nameof(Entity)); } var question = Entity.ToEF(); question.Form = evaluationContext .Forms .FirstOrDefault(f => f.Id == Entity.FormId); return(evaluationContext.Questions.Add(question).Entity.ToTransfertObject()); }
public ActionResult CreateQuestion(QuestionTO question) { try { var currentUser = _userManager.GetUserAsync(User).Result; question.AuthorId = currentUser.Id; _askUC.AskAQuestion(question); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
private void SaveResponse() { QuestionTO question = GetCurrentQuestion(); AssesmentResponseTO response = new AssesmentResponseTO(); response.AnswerIsRight = responseWasRight; response.AssesmentID = id; response.QuestionId = question.QuestionId; response.AnswerId = question.Answers.ElementAt(currentQuestionAnswerIndex - 1).AnswerId; db.AssesmentResponses.Add(response); db.SaveChanges(); }
public IActionResult AddQuestion(int id) { int position = 1; if (assistantRole.GetFormById(id).Questions.Count > 0) { position += assistantRole.GetFormById(id).Questions.Max(q => q.Position); } var question = new QuestionTO { FormId = id, Position = position }; return(View(question)); }
public QuestionTO Insert(QuestionTO entity) { if (entity is null) { throw new ArgumentNullException(); } if (entity.Id != 0) { return(entity); } entity.Answers = new List <AnswerTO>(); var result = context.Questions.Add(entity.ToEF()); return(result.Entity.ToTO()); }
public void ModifyQuestion_ProvidingNonExistingId_ThrowException() { var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); DateTime date = DateTime.Now; var question = new QuestionTO { Id = 16783, IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; Assert.ThrowsException <KeyNotFoundException>(() => questionRepository.Modify(question)); }
public void ArchiveAnswer_Correct() { var options = new DbContextOptionsBuilder <QAndAContext>().UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name).Options; var context = new QAndAContext(options); IAnswerRepository ARepo = new AnswerRepository(context); IQuestionRepository QRepo = new QuestionRepository(context); var question = new QuestionTO { Questioning = "Not hungry", CreationDate = DateTime.Now, State = State.Pending, IsArchived = false, LostSoul = new UserTO { FirstName = "Don't wanna", LastName = "Eat" } }; var addedQuestion = QRepo.Insert(question); QRepo.Save(); var answer = new AnswerTO { Answering = "must be the donuts", AnswerTime = DateTime.Now.AddHours(1), QuestionId = addedQuestion.Id, Savior = new UserTO { FirstName = "Any", LastName = "Officer" } }; var addedAnswer = ARepo.Insert(answer); ARepo.Save(); Assert.AreEqual(1, ARepo.GetAll().Count()); var deletedAnswer = ARepo.Delete(addedAnswer); ARepo.Save(); var all = ARepo.GetAll(); Assert.AreEqual(0, all.Count()); Assert.IsTrue(deletedAnswer); Assert.IsTrue(ARepo.Get(addedAnswer.Id).IsDeleted); }
public void ToEF_Successful() { //ARRANGE DateTime date = DateTime.Now; var question = new QuestionTO { Id = 1, IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var answer = new AnswerTO { Message = "En fait, c'est facile il faut toujorus faire des tests", AuthorId = 2, AssociatedQuestion = question, }; //ACT var result = answer.ToEF(); //Assert Assert.AreEqual(answer.AuthorId, result.AuthorId); Assert.AreEqual(answer.Message, result.Message); }
public void GetQuestionById_ProvidingNoId_ThrowException() { var options = new DbContextOptionsBuilder <AskContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new AskContext(options); IQuestionRepository questionRepository = new QuestionRepository(context); //ARRANGE DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; //ASSERT Assert.ThrowsException <ArgumentException>(() => questionRepository.GetById(question.Id)); }
public void Question_GetAll() { var options = new DbContextOptionsBuilder <QAndAContext>().UseInMemoryDatabase(MethodBase.GetCurrentMethod().Name).Options; var context = new QAndAContext(options); IQuestionRepository QRepo = new QuestionRepository(context); var question1 = new QuestionTO { Questioning = "Great Power Blah blah blah", CreationDate = DateTime.Now, State = State.Resolved, IsArchived = false, LostSoul = new UserTO { FirstName = "Peter", LastName = "Pan" } }; var question2 = new QuestionTO { Questioning = "How to cure RDR2", CreationDate = DateTime.Now, State = State.Pending, IsArchived = false, LostSoul = new UserTO { FirstName = "Arthur", LastName = "Morgan" } }; var question3 = new QuestionTO { Questioning = "Why no tracking ?", CreationDate = DateTime.Now, State = State.Pending, IsArchived = true, LostSoul = new UserTO { FirstName = "Pro", LastName = "Stalker" } }; QRepo.Insert(question1); QRepo.Insert(question2); QRepo.Insert(question3); QRepo.Save(); var result = QRepo.GetAll(); Assert.AreEqual(2, result.Count()); }
public List <QuestionTO> MockListOfQuestions() { DateTime date = DateTime.Now; var question = new QuestionTO { IsResolved = false, Message = "Je n'arrive pas à faire un test!", Title = "Problème avec Tests", Date = date, AuthorId = 1 }; var question2 = new QuestionTO { IsResolved = false, Message = "Comment créer un projet MVC 6?", Title = "MVC6", Date = date, AuthorId = 2 }; var question3 = new QuestionTO { IsResolved = false, Message = "Comment faire boucle foreach?", Title = "foreach", Date = date, AuthorId = 2 }; return(new List <QuestionTO> { question, question2, question3 }); }