public async Task Execute_WithUserId_FiltersToUser()
        {
            const int USER_ID = 3;

            var mediaApi = MockMediaRepository.CreateWithData(
                DEFAULT_NUM_ALBUMS,
                DEFAULT_NUM_USERS,
                DEFAULT_PHOTOS_PER_ALBUM
                );

            var query = new SearchAlbumsQuery()
            {
                UserId = USER_ID
            };

            var handler = new SearchAlbumsQueryHandler(mediaApi, NullLogger <SearchAlbumsQueryHandler> .Instance);

            var result = await handler.ExecuteAsync(query);

            var albumsPerUser = result.GroupBy(a => a.UserId);
            var firstGroup    = albumsPerUser.FirstOrDefault();

            Assert.NotNull(firstGroup);
            Assert.Single(albumsPerUser);
            Assert.Equal(USER_ID, firstGroup.Key);
        }
        public async Task Execute_WhenEmptyQuery_ReturnsAllAlbums()
        {
            var mediaApi = MockMediaRepository.CreateWithData(
                DEFAULT_NUM_ALBUMS,
                DEFAULT_NUM_USERS,
                DEFAULT_PHOTOS_PER_ALBUM
                );

            var query   = new SearchAlbumsQuery();
            var handler = new SearchAlbumsQueryHandler(mediaApi, NullLogger <SearchAlbumsQueryHandler> .Instance);

            var result = await handler.ExecuteAsync(query);

            Assert.Equal(DEFAULT_NUM_ALBUMS, result.Count);
        }
        public async Task Execute_WhenEmptyQuery_MapsPhotosToAlbums()
        {
            var mediaApi = MockMediaRepository.CreateWithData(
                DEFAULT_NUM_ALBUMS,
                DEFAULT_NUM_USERS,
                DEFAULT_PHOTOS_PER_ALBUM
                );

            var query   = new SearchAlbumsQuery();
            var handler = new SearchAlbumsQueryHandler(mediaApi, NullLogger <SearchAlbumsQueryHandler> .Instance);

            var result = await handler.ExecuteAsync(query);

            var albumsWithCorrectNumberOfPhotos = result
                                                  .Where(a => a.Photos.Count == DEFAULT_PHOTOS_PER_ALBUM);

            Assert.Equal(DEFAULT_NUM_ALBUMS, albumsWithCorrectNumberOfPhotos.Count());
        }