示例#1
0
        public async Task DeleteAnswerErrorTest()
        {
            // Arrange
            var repo       = new Mock <IRepositoryEnq>();
            var notFoundId = 7000;
            var badId1     = 0;
            var badId2     = -100;

            repo.Setup(r => r.ExistsAsync <Answer>
                           (It.IsAny <Expression <Func <Answer, bool> > >())).ReturnsAsync(false);

            var controller = new WrApiControllerWithContext(repo.Object);

            // Act
            var notFoundResult = await controller.DeleteAnswer(notFoundId);

            var badReqResult = await controller.DeleteAnswer(badId1);

            await controller.DeleteAnswer(badId2);

            // Assert
            Assert.IsType <NotFoundResult>(notFoundResult);
            Assert.IsType <BadRequestResult>(badReqResult);

            repo.Verify(r => r.ExistsAsync <Answer>
                            (It.IsAny <Expression <Func <Answer, bool> > >()), Times.Once);
            repo.VerifyNoOtherCalls();
        }
示例#2
0
        public async Task EditAnswerErrorTest()
        {
            // Arrange
            var repo      = new Mock <IRepositoryEnq>();
            var answer    = QuestionData.TestAnswer;
            var errAnswer = QuestionData.InvalidTestAnswer;

            repo.Setup(r => r.GetByIdAsync <Answer>(answer.Id, null, null))
            .Returns(Task.FromResult <Answer>(null));

            var controller = new WrApiControllerWithContext(repo.Object);

            // Act
            var notFoundResult = await controller.EditAnswer(answer);

            var badReqResult = await controller.EditAnswer(errAnswer);

            // Assert
            Assert.IsType <NotFoundResult>(notFoundResult);
            Assert.IsType <BadRequestResult>(badReqResult);
            Assert.Equal(1, repo.Invocations.Count);

            repo.Verify(r => r.GetByIdAsync <Answer>(answer.Id, null, null), Times.Once);
            repo.VerifyNoOtherCalls();
        }
示例#3
0
        public async Task EditQuestionErrorTest()
        {
            // Arrange
            var repo        = new Mock <IRepositoryEnq>();
            var question    = QuestionData.TestQuestion;
            var errQuestion = QuestionData.EditTestInvalidTestQuestion;

            repo.Setup(r => r.GetByIdAsync <Question>(question.Id, null, null))
            .Returns(Task.FromResult <Question>(null));

            var controller = new WrApiControllerWithContext(repo.Object);

            // Act
            var notFoundResult = await controller.EditQuestion(question);

            var badReqResult = await controller.EditQuestion(errQuestion);

            // Assert
            Assert.IsType <NotFoundResult>(notFoundResult);
            Assert.IsType <BadRequestResult>(badReqResult);

            repo.Verify(r => r.GetByIdAsync <Question>(question.Id, null, null)
                        , Times.Once);
            repo.VerifyNoOtherCalls();
        }
示例#4
0
        public async Task EditAnswerTest()
        {
            // Arrange
            var repo   = new Mock <IRepositoryEnq>();
            var answer = QuestionData.TestAnswer;

            repo.Setup(r => r.GetByIdAsync <Answer>(answer.Id, null, null))
            .ReturnsAsync(answer);

            var controller = new WrApiControllerWithContext(repo.Object);

            // Act
            var result = await controller.EditAnswer(answer);

            // Assert
            Assert.IsType <OkResult>(result);
            repo.Verify(r => r.Update(answer), Times.Once);
            repo.Verify(r => r.SaveAsync(), Times.Once);
            repo.Verify(r => r.GetByIdAsync <Answer>(answer.Id, null, null));
            repo.VerifyNoOtherCalls();
        }
示例#5
0
        public async Task DeleteAnswerTest()
        {
            // Arrange
            var repo = new Mock <IRepositoryEnq>();
            var id   = 10;

            repo.Setup(r => r.ExistsAsync <Answer>
                           (It.IsAny <Expression <Func <Answer, bool> > >())).ReturnsAsync(true);

            var controller = new WrApiControllerWithContext(repo.Object);

            // Act
            var result = await controller.DeleteAnswer(id);

            // Assert
            Assert.IsType <OkResult>(result);

            repo.Verify(r => r.ExistsAsync <Answer>
                            (It.IsAny <Expression <Func <Answer, bool> > >()), Times.Once);
            repo.Verify(r => r.DeleteById <Answer>(id), Times.Once);
            repo.Verify(r => r.SaveAsync(), Times.Once);
            repo.VerifyNoOtherCalls();
        }