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