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()); }
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); }