public async Task Search_ShouldCallNewsServiceOnce(List <New> newsFixture, NewsSearchResource searchValue)
        {
            // Arrange
            var mockedNewsService = createNewsServiceSearch(newsFixture);
            var controller        = new NewsController(_mapper, mockedNewsService.Object);

            // Act
            var result = await controller.SearchTitle(searchValue);

            // Asset
            mockedNewsService.Verify(svc => svc.SearchAsync(searchValue.Search), Times.Once());
        }
示例#2
0
        public async Task <IActionResult> SearchTitle([FromBody] NewsSearchResource value)
        {
            var news = await _newsService.SearchAsync(value.Search);

            if (!news.Success)
            {
                return(BadRequest(news.Message));
            }

            var resource = _mapper.Map <IEnumerable <New>, IEnumerable <NewResource> >(news.Result);

            return(Ok(resource));
        }
        public async Task Search_FieldsShouldBeTheSame(List <New> newsFixture, NewsSearchResource searchValue)
        {
            // Arrange
            var mockedNewsService = createNewsServiceSearch(newsFixture);
            var controller        = new NewsController(_mapper, mockedNewsService.Object);

            // Act
            var result = await controller.SearchTitle(searchValue);

            // Asset
            var okResult   = Assert.IsType <OkObjectResult>(result);
            var returnNews = Assert.IsAssignableFrom <IEnumerable <NewResource> >(okResult.Value);

            returnNews.Should().Equal(newsFixture, (rsc, fix) =>
            {
                return(rsc.Author == fix.By && rsc.Title == fix.Title && rsc.Url == fix.Url);
            });
        }
        public async Task Search_ShouldReturnBadRequestWithMessageIfErroOnService(NewsSearchResource searchValue)
        {
            // Arrange
            const string errorMessage    = "Error";
            var          mockNewsService = new Mock <INewsService>();
            var          responseFixture = new GenericResponse <IEnumerable <New> >(errorMessage);

            mockNewsService.Setup(svc => svc.SearchAsync(searchValue.Search)).ReturnsAsync(responseFixture);
            var controller = new NewsController(_mapper, mockNewsService.Object);

            // Act
            var result = await controller.SearchTitle(searchValue);

            // Asset
            var badRequestResult = Assert.IsType <BadRequestObjectResult>(result);

            badRequestResult.Value.Should().Be(errorMessage);
        }