Пример #1
0
        public Answer Add(Answer answer)
        {
            using (IUnitOfWork unitOfWork = context.CreateUnitOfWork())
            {
                if (answer.QuestionId <= 0)
                {
                    throw new ArgumentOutOfRangeException(
                              nameof(answer.QuestionId), answer.QuestionId, "QuestionId must be greater than 0.");
                }

                if (answerRepo.Find(x => x.AnswerSort == answer.AnswerSort &&
                                    x.QuestionId == answer.QuestionId).Any())
                {
                    throw new ArgumentException("Answer in this sort position already exists.", nameof(answer.AnswerSort));
                }

                int newAnswerId = answerRepo.Insert(answer);
                if (newAnswerId <= 0)
                {
                    throw new FailedOperationException("Failed to insert Answer.", answer);
                }

                unitOfWork.SaveChanges();
                return(answerRepo.GetById(newAnswerId));
            }
        }
Пример #2
0
        public void Desactivateing(int id)
        {
            AnswerRepository repository = new AnswerRepository();
            AnswersEntity    entity     = repository.GetById(id);

            entity.status = false;
            repository.update(entity);
        }
Пример #3
0
        public void testGetById()
        {
            // Arrange
            int count = repo.All().Count();

            Answer c = repo.All().FirstOrDefault();

            Assert.NotNull(c);


            // Act
            Answer actual = repo.GetById(c.Id);

            // Assert

            Assert.NotNull(actual);
        }
Пример #4
0
        public void GetAnswerById_ProvidingNonExistingId_ThrowException()
        {
            var options = new DbContextOptionsBuilder <AskContext>()
                          .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name)
                          .Options;

            using var context = new AskContext(options);
            IAnswerRepository answerRepository = new AnswerRepository(context);

            //ASSERT
            Assert.ThrowsException <ArgumentNullException>(() => answerRepository.GetById(14));
        }
Пример #5
0
        public void GetAnswerById_Successful()
        {
            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();

            //ACT
            var test = answerRepository.GetById(2);

            //ASSERT
            Assert.AreEqual("Oui c'est trop facile les tests avec InMemory", test.Message);
        }
Пример #6
0
        public void GetAnswerById_ProvidingNoId_ThrowException()
        {
            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);
            //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 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,
            };

            //ASSERT
            Assert.ThrowsException <ArgumentException>(() => answerRepository.GetById(question.Id));
        }
Пример #7
0
        public AnswersEntity GetById(int id)
        {
            AnswerRepository repository = new AnswerRepository();

            return(repository.GetById(id));
        }