diff --git a/src/IF.Lastfm.Core.Tests/Api/Commands/Tag/GetInfoCommandTests.cs b/src/IF.Lastfm.Core.Tests/Api/Commands/Tag/GetInfoCommandTests.cs new file mode 100644 index 0000000..da518a3 --- /dev/null +++ b/src/IF.Lastfm.Core.Tests/Api/Commands/Tag/GetInfoCommandTests.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using IF.Lastfm.Core.Api.Commands.Tag; +using IF.Lastfm.Core.Api.Enums; +using IF.Lastfm.Core.Objects; +using IF.Lastfm.Core.Tests.Resources; +using NUnit.Framework; + +namespace IF.Lastfm.Core.Tests.Api.Commands.Tag +{ + public class GetInfoCommandTests: CommandTestsBase + { + [Test] + public async Task HandleSuccessResponse() + { + //Arrange + const string tagName = "disco"; + const string tagUri = "http://www.last.fm/tag/disco"; + + var command = new GetInfoCommand(MAuth.Object, tagName); + var expectedTag=new LastTag(tagName,tagUri) + { + Reach = 34671, + Streamable = true + }; + + + //Act + var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetInfoSuccess)); + var lastResponse = await command.HandleResponse(response); + var tag = lastResponse.Content; + + //Assert + Assert.IsTrue(lastResponse.Success); + Assert.AreEqual(expectedTag.Reach,tag.Reach); + Assert.AreEqual(expectedTag.Name, tag.Name); + Assert.AreEqual(expectedTag.Streamable, tag.Streamable); + } + + [Test] + public async Task HandleErrorResponse() + { + var command = new GetInfoCommand(MAuth.Object, "errorTag"); + + var response = CreateResponseMessage(Encoding.UTF8.GetString(TagApiResponses.GetInfoError)); + + var parsed = await command.HandleResponse(response); + + Assert.IsFalse(parsed.Success); + Assert.IsTrue(parsed.Status == LastResponseStatus.MissingParameters); + } + } +} diff --git a/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj b/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj index e6aef95..52724f6 100644 --- a/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj +++ b/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj @@ -92,6 +92,7 @@ +