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")); }