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");
        }
コード例 #2
0
        public async Task <WorksResponse> GetArtistWorksAsync(string artistId)
        {
            int           limit    = 100;
            int           offset   = 0;
            WorksResponse response = new WorksResponse();
            WorksResponse worksBatch;

            do
            {
                worksBatch = await _musicInfoClient.GetWorksAsync(artistId, limit, offset);

                var allSongs = worksBatch.Works.Where(w => w.Type == "Song");
                response.Works.AddRange(allSongs);
                offset += limit;
            } while (worksBatch.Works.Count == limit);

            return(response);
        }
        public async Task GetAllSongLyricsAsync_ReturnsNoSongs_NullLyricsResponse()
        {
            var artistName    = "artistName";
            var worksResponse = new WorksResponse
            {
                Works = new List <Work> {
                    new Work {
                        Id = "1234DSF", Title = "Song", Type = "Song"
                    }
                }
            };

            _lyricsApiClientMock.Setup(lyricsApiClient => lyricsApiClient.GetLyricsAsync(artistName, It.IsAny <string>())).Returns(Task.FromResult <LyricsResponse>(null));

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

            results.Should().BeEmpty();
        }