1
0
mirror of https://github.com/ZetaKebab/MpcNET.git synced 2025-01-14 22:18:43 +00:00

ListAll command + test

This commit is contained in:
glucaci 2016-12-16 14:00:16 +01:00
parent 7f7b5b4615
commit 15c81b96e9
2 changed files with 28 additions and 8 deletions

View File

@ -67,20 +67,39 @@ namespace LibMpc
// TODO: findadd // TODO: findadd
public class ListAll : IMpcCommand<IList<KeyValuePair<string, string>>> public class ListAll : IMpcCommand<IList<IDictionary<string, IList<string>>>>
{ {
public string Value => "listall"; public string Value => "listall";
public IDictionary<string, IList<KeyValuePair<string, string>>> FormatResponse(IList<KeyValuePair<string, string>> response) public IDictionary<string, IList<IDictionary<string, IList<string>>>> FormatResponse(IList<KeyValuePair<string, string>> response)
{ {
var results = new Dictionary<string, IList<KeyValuePair<string, string>>> var results = new Dictionary<string, IList<IDictionary<string, IList<string>>>>
{ {
{ "result", new List<KeyValuePair<string, string>>() } { "directories", new List<IDictionary<string, IList<string>>>() }
}; };
foreach (var keyValuePair in response) // Add by default the root directory
results["directories"].Add(new Dictionary<string, IList<string>>
{ {
results["result"].Add(keyValuePair); { "path", new List<string>() },
{ "files", new List<string>() }
});
foreach (var line in response)
{
if (line.Key.Equals("file"))
{
results["directories"].Last()["files"].Add(line.Value);
}
if (line.Key.Equals("directory"))
{
results["directories"].Add(new Dictionary<string, IList<string>>
{
{ "path", new []{ line.Value } },
{ "files", new List<string>() }
});
}
} }
return results; return results;

View File

@ -53,7 +53,8 @@ namespace LibMpcTest
Console.Out.WriteLine("ListAllTest Result:"); Console.Out.WriteLine("ListAllTest Result:");
Console.Out.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented)); Console.Out.WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
// TODO: Assert Assert.True(response.Response.Body.Keys.Contains("directories"));
Assert.True(response.Response.Body["directories"].Count.Equals(5));
} }
public void Dispose() public void Dispose()