Exemple #1
0
        public async Task <LyricsResponse> GetLyrics(LyricsRequest request)
        {
            var response = new LyricsResponse()
            {
                Lyrics = "",
                Url    = "",
            };

            if (IsInternetAvailable)
            {
                string url = $"http://api.lololyrics.com/0.5/getLyric?artist={request.Artist}&track={request.Title}&rawutf8=1";

                try
                {
                    var doc = await XmlDocument.LoadFromUriAsync(new Uri(url));

                    var status = doc.DocumentElement.ChildNodes.FirstOrDefault(x => x.NodeName == "status");
                    if (status.InnerText == "OK")
                    {
                        response.Lyrics = doc.DocumentElement.ChildNodes.FirstOrDefault(x => x.NodeName == "response")?.InnerText ?? "";
                        response.Url    = doc.DocumentElement.ChildNodes.FirstOrDefault(x => x.NodeName == "url")?.InnerText ?? "";
                    }
                }
                catch (Exception ex)
                {
                }
            }
            return(response);
        }
Exemple #2
0
        private void VerifyGetLyricsResponse(LyricsResponse response, LyricsStatus expectedStatus, string expectedLyrics, Mock <ILyricsApiQuery> lyricsApiQueryMock)
        {
            response.Should().NotBeNull();
            response.Status.Should().Equals(expectedStatus);
            response.Lyrics.Should().Equals(expectedLyrics);

            lyricsApiQueryMock.Verify(x => x.FetchLyrics(It.IsAny <Artist>(), It.IsAny <Song>()), Times.Once);
        }
        public async Task GetAllSongLyricsAsync_ReturnsNoSongs_NoLyricsResponse()
        {
            var artistName    = "artistName";
            var worksResponse = new WorksResponse
            {
                Works = new List <Work> {
                    new Work {
                        Id = "1234DSF", Title = "Song", Type = "Song"
                    }
                }
            };
            var lyricsResponse = new LyricsResponse();

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

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

            results.Should().BeEmpty();
        }