示例#1
0
        public async Task Post_ValidCall()
        {
            var mock       = AutoMock.GetLoose();
            var comic      = new ComicBookInputDto();
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Post(comic);

            mock.Mock <IComicBookService>().Verify(x => x.AddComicAsync(comic), Times.Once);
            Assert.IsType <CreatedResult>(result);
        }
示例#2
0
        public async Task Post_AddComicThrowsValidationException_ReturnsBadRequestObjectResult()
        {
            var mock  = AutoMock.GetLoose();
            var comic = new ComicBookInputDto();

            mock.Mock <IComicBookService>().Setup(x => x.AddComicAsync(comic)).Throws(new ValidationException("error"));
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Post(comic);

            Assert.IsType <BadRequestObjectResult>(result);
        }
示例#3
0
        public async Task Put_UpdateThrowsValidationException_ReturnsBadRequestObjectResult()
        {
            var mock  = AutoMock.GetLoose();
            var comic = new ComicBookInputDto();

            mock.Mock <IComicBookService>().Setup(x => x.UpdateComicAsync(1, comic)).Throws <ValidationException>();
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Put(1, comic);

            Assert.IsType <BadRequestObjectResult>(result);
        }
示例#4
0
        public async Task Put_UpdateThrowsNullReferenceException_ReturnsNotFoundResult()
        {
            var mock  = AutoMock.GetLoose();
            var comic = new ComicBookInputDto();

            mock.Mock <IComicBookService>().Setup(x => x.UpdateComicAsync(1, comic)).Throws <NullReferenceException>();
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Put(1, comic);

            Assert.IsType <NotFoundResult>(result);
        }
示例#5
0
        public async Task Patch_UpdateThrowsValidationException_ReturnsBadRequestObjectResult()
        {
            var mock  = AutoMock.GetLoose();
            var comic = new ComicBookInputDto();

            mock.Mock <IComicBookService>().Setup(x => x.ComicToEditAsync(1)).Returns(Task.FromResult(comic));
            mock.Mock <IComicBookService>().Setup(x => x.UpdateComicAsync(1, comic)).Throws <ValidationException>();
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Patch(1, new JsonPatchDocument <ComicBookInputDto>());

            Assert.IsType <BadRequestObjectResult>(result);
        }
示例#6
0
        public async Task Patch_ValidCall()
        {
            var mock  = AutoMock.GetLoose();
            var comic = new ComicBookInputDto();

            mock.Mock <IComicBookService>().Setup(x => x.ComicToEditAsync(1)).Returns(Task.FromResult(comic));
            var controller = mock.Create <ComicBookController>();

            var result = await controller.Patch(1, new JsonPatchDocument <ComicBookInputDto>());

            mock.Mock <IComicBookService>().Verify(x => x.UpdateComicAsync(1, comic), Times.Once);
            Assert.IsType <CreatedResult>(result);
        }
示例#7
0
        public async Task <ActionResult> Post([FromBody] ComicBookInputDto comicDto)
        {
            try
            {
                await _service.AddComicAsync(comicDto);
            }
            catch (ValidationException e)
            {
                return(ValidationProblem(new ValidationProblemDetails()
                {
                    Detail = e.Message
                }));
            }

            return(Created(nameof(Get), null));
        }
示例#8
0
        public async Task <ActionResult> Put(int id, [FromBody] ComicBookInputDto comicDto)
        {
            try
            {
                await _service.UpdateComicAsync(id, comicDto);
            }
            catch (NullReferenceException)
            {
                return(NotFound());
            }
            catch (ValidationException e)
            {
                return(ValidationProblem(new ValidationProblemDetails()
                {
                    Detail = e.Message
                }));
            }

            return(Created(nameof(Get), id));
        }