Esempio n. 1
0
        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 }));
        }