public async Task GetAllSongLyricsAsync_ReturnsOneSong_OneSuccessfulLyricsResponse()
        {
            var artistName    = "artistName";
            var worksResponse = new WorksResponse
            {
                Works = new List <Work>
                {
                    new Work {
                        Id = "1234DSFFWD", Title = "Song", Type = "Song"
                    },
                    new Work {
                        Id = "127364GEEC", Title = "AnotherSong", Type = "AnotherSong"
                    }
                }
            };
            var lyricsResponse = LyricsResponseTestData.ResponseWithLyrics();

            _lyricsApiClientMock.Setup(lyricsApiClient => lyricsApiClient.GetLyricsAsync(artistName, worksResponse.Works[0].Title))
            .Returns(Task.FromResult <LyricsResponse>(lyricsResponse));
            _lyricsApiClientMock.Setup(lyricsApiClient => lyricsApiClient.GetLyricsAsync(artistName, worksResponse.Works[1].Title))
            .Returns(Task.FromResult <LyricsResponse>(new LyricsResponse {
                Lyrics = ""
            }));

            var results = await _sut.GetAllSongLyricsAsync(artistName, worksResponse.Works);

            var resultList = results.ToList();

            resultList.Should().HaveCount(1);
            resultList[0].Title.Should().Be("Song");
            resultList[0].Lyrics.Should().Be("Some Lyrics");
        }
        public async Task GetAllSongLyricsAsync_ReturnsLyrics_ValidArtistNameAndSongs()
        {
            var artistName    = "artistName";
            var worksResponse = WorksResponseTestData.FourSongsResponse();
            var testData      = Task.Factory.StartNew(() => { return(LyricsResponseTestData.ResponseWithLyrics()); });

            _lyricsApiClientMock.Setup(lyricsApiClient => lyricsApiClient.GetLyricsAsync(artistName, It.IsAny <string>())).Returns(testData);

            var results = await _sut.GetAllSongLyricsAsync(artistName, worksResponse.Works);

            var resultList = results.ToList();

            resultList.Should().HaveCount(4);
            resultList[0].Title.Should().Be("SongOne");
            resultList[1].Title.Should().Be("SongTwo");
            resultList[2].Title.Should().Be("SongThree");
            resultList[3].Title.Should().Be("SongFour");
            resultList.ForEach(s => s.Lyrics.Should().Be("Some Lyrics"));
        }