diff --git a/src/IF.Lastfm.Core.Tests/Api/Commands/AlbumApi/GetAlbumTopTagsCommandTest.cs b/src/IF.Lastfm.Core.Tests/Api/Commands/AlbumApi/GetAlbumTopTagsCommandTest.cs new file mode 100644 index 0000000..9fd4498 --- /dev/null +++ b/src/IF.Lastfm.Core.Tests/Api/Commands/AlbumApi/GetAlbumTopTagsCommandTest.cs @@ -0,0 +1,80 @@ +using IF.Lastfm.Core.Api.Commands.AlbumApi; +using IF.Lastfm.Core.Api.Enums; +using IF.Lastfm.Core.Tests.Resources; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IF.Lastfm.Core.Tests.Api.Commands.AlbumApi +{ + + + [TestClass] + public class GetAlbumTopTagsCommandTest : CommandTestsBase + { + private GetAlbumTopTagsCommand _command; + + public GetAlbumTopTagsCommandTest() + { + _command = new GetAlbumTopTagsCommand(MAuth.Object) + { + AlbumName = "Believe", + ArtistName = "Cher" + }; + + _command.SetParameters(); + } + + [TestMethod] + public void Constructor() + { + Assert.AreEqual(_command.Method, "album.gettoptags"); + Assert.AreEqual(_command.Parameters["album"], "Believe"); + Assert.AreEqual(_command.Parameters["artist"], "Cher"); + + } + + [TestMethod] + public async Task HandleSuccessResponse() + { + var response = CreateResponseMessage(Encoding.UTF8.GetString(AlbumApiResponses.AlbumGetTopTags)); + + var parsed = await _command.HandleResponse(response); + + Assert.IsTrue(parsed.Success); + Assert.IsNotNull(parsed.Content); + + } + + + [TestMethod] + public async Task HandleEmptyResponse() + { + var response = CreateResponseMessage(Encoding.UTF8.GetString(AlbumApiResponses.AlbumGetTopTagsEmpty)); + + var parsed = await _command.HandleResponse(response); + + Assert.IsTrue(parsed.Success); + Assert.IsNotNull(parsed.Content); + Assert.IsTrue(!parsed.Content.Any()); + } + + [TestMethod] + public async Task HandleErrorResponse() + { + var response = CreateResponseMessage(Encoding.UTF8.GetString(AlbumApiResponses.AlbumGetTopTagsError)); + + var parsed = await _command.HandleResponse(response); + + Assert.IsFalse(parsed.Success); + Assert.IsTrue(parsed.Error == LastFmApiError.MissingParameters); + Assert.IsNotNull(parsed.Content); + Assert.IsTrue(!parsed.Content.Any()); + } + } + + +} 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 6a54462..06c2327 100644 --- a/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj +++ b/src/IF.Lastfm.Core.Tests/IF.Lastfm.Core.Tests.csproj @@ -57,6 +57,12 @@ + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Extensions.dll + + + ..\..\packages\Microsoft.Net.Http.2.2.28\lib\net45\System.Net.Http.Primitives.dll + @@ -70,6 +76,7 @@ + @@ -80,9 +87,9 @@ - AlbumApiResponses.resx - True True + True + AlbumApiResponses.resx TrackApiResponses.resx @@ -102,10 +109,13 @@ + + + @@ -149,6 +159,11 @@ + + + + +