public async Task GetById_ValidCall() { var mock = AutoMock.GetLoose(); var series = new SeriesDetailsDto(); mock.Mock <ISeriesService>().Setup(x => x.DetailsAsync(1)).Returns(Task.FromResult(series)); var controller = mock.Create <SeriesController>(); var result = await controller.GetById(1); mock.Mock <ISeriesService>().Verify(x => x.DetailsAsync(1), Times.Once); Assert.IsType <OkObjectResult>(result.Result); }
public async Task <ActionResult <Series> > GetSingleSeries(int id) { _logger.LogInformation($"Requesting Series with Id: {id}"); var series = await _context.Series .Include(s => s.Episodes) .Include(s => s.Writers).ThenInclude(sw => sw.Artist) .Include(s => s.Cast).ThenInclude(sc => sc.Artist) .Include(s => s.Categories).ThenInclude(sc => sc.Category) .Include(s => s.Reviews) .Where(s => s.SeriesId == id) .FirstOrDefaultAsync(); if (series == null) { _logger.LogWarning($"Series with Id: {id} was not found"); return(NotFound()); } else { var seriesDetails = new SeriesDetailsDto { SeriesId = series.SeriesId, Categories = _mapper.Map <List <CategoryDto> >(series.Categories.Select(sc => sc.Category).ToList()), //Reviews = _mapper.Map<List<SeriesReviewDto>>(series.Reviews.ToList()), Cast = _mapper.Map <List <ActorWithRoleDto> >(series.Cast.ToList()), Writers = series.Writers.Select(s => new WriterDto { ArtistId = s.ArtistId, Name = s.Artist.Name }).ToList(), RatingAverage = series.Reviews.Any() ? series.Reviews.Average(r => r.Rating) : 0, RatingsCount = series.Reviews.Count(), CoverImageUrl = series.CoverImageUrl, Description = series.Description, SeasonNumbers = series.Episodes.Select(e => e.Season).Distinct().ToList(), StartYear = series.StartYear, EndYear = series.EndYear, Title = series.Title }; _logger.LogInformation($"Series with Id: {id} was found, returning data"); return(Ok(seriesDetails)); } }