mirror of
https://github.com/ZetaKebab/MpcNET.git
synced 2025-01-14 22:18:43 +00:00
ListPlaylistInfo command and UnitTest.
This commit is contained in:
parent
5ea5d24b7a
commit
679748b207
@ -40,6 +40,37 @@ namespace LibMpc
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ListPlaylistInfo : IMpcCommand<IEnumerable<IMpdFile>>
|
||||||
|
{
|
||||||
|
private readonly string _playlistName;
|
||||||
|
|
||||||
|
public ListPlaylistInfo(string playlistName)
|
||||||
|
{
|
||||||
|
_playlistName = playlistName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string Value => string.Join(" ", "listplaylistinfo", $"\"{_playlistName}\"");
|
||||||
|
|
||||||
|
public IEnumerable<IMpdFile> FormatResponse(IList<KeyValuePair<string, string>> response)
|
||||||
|
{
|
||||||
|
var results = new List<MpdFile>();
|
||||||
|
|
||||||
|
foreach (var line in response)
|
||||||
|
{
|
||||||
|
if (line.Key.Equals("file"))
|
||||||
|
{
|
||||||
|
results.Add(new MpdFile(line.Value));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
results.Last().AddTag(line.Key, line.Value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return results;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Prints a list of the playlist directory.
|
/// Prints a list of the playlist directory.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -3,6 +3,7 @@ using Newtonsoft.Json;
|
|||||||
using Xunit;
|
using Xunit;
|
||||||
using LibMpc;
|
using LibMpc;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
namespace LibMpcTest
|
namespace LibMpcTest
|
||||||
{
|
{
|
||||||
@ -22,6 +23,23 @@ namespace LibMpcTest
|
|||||||
Assert.True(response.Response.Body.Count().Equals(numberOfFiles));
|
Assert.True(response.Response.Body.Count().Equals(numberOfFiles));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData("Playlist One", 5)]
|
||||||
|
[InlineData("Playlist Two", 3)]
|
||||||
|
[InlineData("_My Playlist", 5)]
|
||||||
|
public async Task ListPlaylistInfoTest(string playlistName, int numberOfFiles)
|
||||||
|
{
|
||||||
|
var response = await Mpc.SendAsync(new Commands.Playlists.Stored.ListPlaylistInfo(playlistName));
|
||||||
|
|
||||||
|
TestOutput.WriteLine($"ListPlaylistTest (playlistName: {playlistName}) Result:");
|
||||||
|
TestOutput.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
|
||||||
|
|
||||||
|
Assert.True(response.Response.Body.Count().Equals(numberOfFiles));
|
||||||
|
Assert.True(response.Response.Body.All(item => !string.IsNullOrEmpty(item.Artist)));
|
||||||
|
Assert.True(response.Response.Body.All(item => !string.IsNullOrEmpty(item.Title)));
|
||||||
|
Assert.True(response.Response.Body.All(item => !string.IsNullOrEmpty(item.Date)));
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task ListPlaylistsTest()
|
public async Task ListPlaylistsTest()
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user