public async Task ShouldReturn_ThreeMoviesExists_ReturnPagedListMovieViewModel() { var fixture = new Fixture(); var movies = fixture.Create <List <Movie> >(); var movieParameters = new MovieParameters(); var pagedListMovie = new PagedList <Movie>(movies, movies.Count, 0, 0); var movieRepository = new Mock <IMovieRepository>(); var getAllMoviesQuery = new GetAllMovieQuery(movieParameters); var getAllMovieQueryHandler = new GetAllMovieQueryHandler(movieRepository.Object); movieRepository.Setup(pr => pr.GetAllAsync(movieParameters)) .Returns(pagedListMovie); var moviesPagedList = await getAllMovieQueryHandler.Handle(getAllMoviesQuery, new System.Threading.CancellationToken());; Assert.NotNull(moviesPagedList); Assert.NotEmpty(moviesPagedList); Assert.Equal(3, moviesPagedList.TotalRecords); Assert.Equal(1, moviesPagedList.TotalPages); Assert.Equal(50, moviesPagedList.PageSize); Assert.IsType <PagedList <MovieViewModel> >(moviesPagedList); movieRepository.Verify(mr => mr.GetAllAsync(movieParameters), Times.Once); }
public async Task <IActionResult> Get(MovieParameters parameters) { var getAllMovieQuery = new GetAllMovieQuery(parameters); var movies = await _mediator.Send(getAllMovieQuery); var metaData = new { movies.CurrentPage, movies.PageSize, movies.TotalPages, movies.TotalRecords, movies.HasNext, movies.HasPrevious }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metaData)); return(Ok(new { movies, metaData })); }