public IndexViewItem <Domain.DataTransfer.Album> DisplayAlbumsWithPagination(int page = 1, int pageSize = 10) { var albumsList = _albumRepository.GetItemList(); if (albumsList == null) { throw new Exception($"{nameof(albumsList)} equal null"); } var resultOfPagination = _albumRepository.MakePagination(albumsList.ToList(), page, pageSize); if (resultOfPagination == null) { throw new Exception($"{nameof(resultOfPagination)} less then 0"); } IndexViewItem <Domain.DataTransfer.Album> indexViewDomainAlbums = new IndexViewItem <Domain.DataTransfer.Album>(); indexViewDomainAlbums.PageInfo = new Repository <Domain.DataTransfer.Album>(); indexViewDomainAlbums.PageInfo.PageNumber = resultOfPagination.PageInfo.PageNumber; indexViewDomainAlbums.PageInfo.PageSize = resultOfPagination.PageInfo.PageSize; indexViewDomainAlbums.PageInfo.TotalItems = resultOfPagination.PageInfo.TotalItems; indexViewDomainAlbums.Items = resultOfPagination.Items.Select(_mapAlbum.AutoMap); return(indexViewDomainAlbums); }
public void DisplayPaginatedAlbums() { //Arrange var albumDomain = new MusicStore.Domain.DataTransfer.Album() { Id = 1, Name = "Album 1", DiscountIfBuyAllSongs = 15.0m, }; var albumDomainList = new List <MusicStore.Domain.DataTransfer.Album>() { albumDomain }; var indexViewDomainItem = new IndexViewItem <MusicStore.Domain.DataTransfer.Album>() { Items = albumDomainList, PageInfo = new Repository <MusicStore.Domain.DataTransfer.Album>() { PageNumber = 1, PageSize = 1, TotalItems = 1 } }; mockMusicStoreDisplayService.Setup(x => x.DisplayAlbumsWithPagination(1, 1)).Returns(indexViewDomainItem); var musicStoreController = new MusicStoreController(mockMusicStoreService.Object, mockUserAccountService.Object, mockMusicStoreDisplayService.Object, mockDiscountService.Object); //Act var result = (ViewResult)musicStoreController.DisplayPaginatedAlbums(1, 1); //Assert Assert.Equal(indexViewDomainItem, result.Model); }
public void DisplayAlbumsWithPaginationTest() { //Arrange var album = new MusicStore.DataAccess.Album() { Id = 1, Name = "Album 1", DiscountIfBuyAllSongs = 15.0m, }; var albumDomain = new MusicStore.Domain.DataTransfer.Album() { Id = 1, Name = "Album 1", DiscountIfBuyAllSongs = 15.0m, }; var albumList = new List <MusicStore.DataAccess.Album>() { album }; var albumDomainList = new List <MusicStore.Domain.DataTransfer.Album>() { albumDomain }; mockUnitOfWork.Setup(x => x.AlbumRepositoryWithPagination).Returns(mockAlbumRepository.Object); mockAlbumRepository.Setup(x => x.GetItemList()).Returns(albumList); var indexViewItem = new IndexViewItem <MusicStore.DataAccess.Album>() { Items = albumList, PageInfo = new Repository <MusicStore.DataAccess.Album>() { PageNumber = 1, PageSize = 1, TotalItems = 1 } }; var indexViewDomainItem = new IndexViewItem <MusicStore.Domain.DataTransfer.Album>() { Items = albumDomainList, PageInfo = new Repository <MusicStore.Domain.DataTransfer.Album>() { PageNumber = 1, PageSize = 1, TotalItems = 1 } }; mockAlbumRepository.Setup(x => x.MakePagination(It.IsAny <List <MusicStore.DataAccess.Album> >(), 1, 10)).Returns(indexViewItem); mockMapAlbum.Setup(x => x.AutoMap(It.IsAny <MusicStore.DataAccess.Album>())).Returns(albumDomain); var musicStoreDisplayService = new MusicStoreDisplayService(mockUnitOfWork.Object, mockMapSong.Object, mockMapAlbum.Object); //Act var result = musicStoreDisplayService.DisplayAlbumsWithPagination(); //Assert Assert.Equal(indexViewDomainItem.Items, result.Items); }