Beispiel #1
0
        /// <summary>
        /// Search for tags similar to this one. Returns tags ordered by similarity, based on listening data.
        /// </summary>
        public Task <PageResponse <LastTag> > GetSimilarAsync(string tagName)
        {
            var command = new GetSimilarCommand(Auth, tagName)
            {
                HttpClient = HttpClient
            };

            return(command.ExecuteAsync());
        }
Beispiel #2
0
        /// <summary>
        /// Search for tags similar to this one. Returns tags ordered by similarity, based on listening data. 
        /// </summary>
        public Task<PageResponse<LastTag>> GetSimilarAsync(string tagName)
        {
            var command = new GetSimilarCommand(Auth, tagName)
            {
                HttpClient = HttpClient
            };

            return command.ExecuteAsync();
        }
Beispiel #3
0
 public async Task<PageResponse<LastArtist>> GetSimilarAsync(string artistname, bool autocorrect = false, int limit = LastFm.DefaultPageLength)
 {
     var command = new GetSimilarCommand(Auth, artistname)
     {
         Autocorrect = autocorrect,
         Limit = limit,
         HttpClient = HttpClient
     };
     return await command.ExecuteAsync();
 }
Beispiel #4
0
        public async Task <PageResponse <LastTrack> > GetSimilarAsync(string trackname, string artistname, bool autocorrect = false, int limit = 100)
        {
            var command = new GetSimilarCommand(Auth, trackname, artistname)
            {
                Autocorrect = autocorrect,
                Limit       = limit,
                HttpClient  = HttpClient
            };

            return(await command.ExecuteAsync());
        }
        public async Task HandleErrorResponse()
        {
            var command = new GetSimilarCommand(MAuth.Object, "arroooo");

            var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetSimilarError));

            var parsed = await command.HandleResponse(response);

            Assert.IsFalse(parsed.Success);
            Assert.IsTrue(parsed.Status == LastResponseStatus.MissingParameters);
        }
Beispiel #6
0
        public async Task<PageResponse<LastTrack>> GetSimilarAsync(string trackname, string artistname, bool autocorrect = false, int limit = 100)
        {
            var command = new GetSimilarCommand(Auth, trackname, artistname)
            {
                Autocorrect = autocorrect,
                Limit = limit,
                HttpClient = HttpClient
            };

            return await command.ExecuteAsync();
        }
        public async Task HandleErrorResponse()
        {
            var command = new GetSimilarCommand(MAuth.Object, "arroooo");

            var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetSimilarError));

            var parsed = await command.HandleResponse(response);

            Assert.IsFalse(parsed.Success);
            Assert.IsTrue(parsed.Status == LastResponseStatus.MissingParameters);
        }
Beispiel #8
0
        public async Task <PageResponse <LastArtist> > GetSimilarByMbidAsync(string mbid, bool autocorrect = false, int limit = LastFm.DefaultPageLength)
        {
            var command = new GetSimilarCommand(Auth)
            {
                ArtistMbid  = mbid,
                Autocorrect = autocorrect,
                Limit       = limit,
                HttpClient  = HttpClient
            };

            return(await command.ExecuteAsync());
        }
        public async Task HandleSuccessResponse()
        {
            const string tagName = "daria";
            var          command = new GetSimilarCommand(MAuth.Object, tagName);

            var expectedTagNames = new[]
            {
                "road trip",
                "longing",
                "old school rap",
                "pj harvey",
                "girl band",
                "alt rock",
                "female rock",
                "90s",
                "post-grunge",
                "acid jazz"
            };
            var expectedTags = expectedTagNames.Select(tag => new LastTag
            {
                Name       = tag,
                Url        = new Uri(String.Format("http://www.last.fm/tag/{0}", Uri.EscapeUriString(tag))),
                RelatedTo  = tagName,
                Streamable = true
            }).ToList();

            expectedTags[0].Streamable = false;
            expectedTags[1].Streamable = null;

            var file     = GetFileContents("Tag.GetSimilarSuccess.json");
            var response = CreateResponseMessage(file);
            //var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetSimilarSuccess));
            var actual = await command.HandleResponse(response);

            Assert.IsTrue(actual.Skip(2).All(t => t.Streamable.GetValueOrDefault()));
            Assert.IsTrue(actual.All(t => t.RelatedTo == tagName));
            Assert.IsTrue(actual.Success);
            TestHelper.AssertSerialiseEqual(expectedTags, actual.ToList());
        }
        public async Task HandleSuccessResponse()
        {
            const string tagName = "daria";
            var command = new GetSimilarCommand(MAuth.Object, tagName);

            var expectedTagNames = new[]
            {
                "road trip",
                "longing",
                "old school rap",
                "pj harvey",
                "girl band",
                "alt rock",
                "female rock",
                "90s",
                "post-grunge",
                "acid jazz"
            };
            var expectedTags = expectedTagNames.Select(tag => new LastTag
            {
                Name = tag,
                Url = new Uri(String.Format("http://www.last.fm/tag/{0}", Uri.EscapeUriString(tag))),
                RelatedTo = tagName,
                Streamable = true
            }).ToList();

            expectedTags[0].Streamable = false;
            expectedTags[1].Streamable = null;
            
            var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetSimilarSuccess));
            var actual = await command.HandleResponse(response);

            Assert.IsTrue(actual.Skip(2).All(t => t.Streamable.GetValueOrDefault()));
            Assert.IsTrue(actual.All(t => t.RelatedTo == tagName));
            Assert.IsTrue(actual.Success);
            TestHelper.AssertSerialiseEqual(expectedTags, actual.ToList());
        }