public async Task GetAlbums() { // Arrange var seedAlbums = SeedAlbums(); var seedAlbumResources = this._mapper.Map <IEnumerable <Album>, IEnumerable <AlbumResource> >(seedAlbums); string seed = Guid.NewGuid().ToString(); string expectedUserName = string.Format("test_{0}@gmail.com", seed); ControllerContext controllerContext = Utilities.SetupCurrentUserForController(expectedUserName); var mockAlbumRepository = new Mock <IAlbumRepository>(); mockAlbumRepository.Setup(m => m.GetAlbums(It.IsAny <AlbumQuery>())).ReturnsAsync(seedAlbums); var mockUserRepository = new Mock <IUserRepository>(); User expectedUser = new User() { Id = seed, UserName = expectedUserName }; mockUserRepository.Setup(m => m.GetOrAdd(It.IsAny <User>())).Returns(expectedUser); var mockUnitOfWork = new Mock <IUnitOfWork>(); AlbumsController controller = new AlbumsController(this._mapper, mockAlbumRepository.Object, mockUserRepository.Object, mockUnitOfWork.Object); controller.ControllerContext = controllerContext; var filterResource = new AlbumQueryResource(); // Act var albums = await controller.GetAlbums(filterResource); // Assert Assert.True(seedAlbumResources.SequenceEqual(albums)); }
public async Task <IEnumerable <AlbumResource> > GetAlbums([FromQuery] AlbumQueryResource filterResource) { var filter = this.mapper.Map <AlbumQueryResource, AlbumQuery>(filterResource); var albums = await this.albumRepository.GetAlbums(filter); var albumResources = mapper.Map <IEnumerable <Album>, IEnumerable <AlbumResource> >(albums); foreach (var album in albumResources) { foreach (var photo in album.Photos) { photo.FilePath = string.Format("{0}/{1}", this.uploadsFolderUrl, photo.FilePath); } } return(albumResources); }