2016-12-13 09:47:06 +00:00
|
|
|
|
using LibMpc;
|
|
|
|
|
using System;
|
2016-12-19 11:12:22 +00:00
|
|
|
|
using System.Diagnostics;
|
2016-12-13 11:55:24 +00:00
|
|
|
|
using System.Linq;
|
2016-12-13 09:47:06 +00:00
|
|
|
|
using System.Net;
|
|
|
|
|
using System.Threading.Tasks;
|
2016-12-13 11:55:24 +00:00
|
|
|
|
using Newtonsoft.Json;
|
2016-12-13 09:47:06 +00:00
|
|
|
|
using Xunit;
|
|
|
|
|
using Xunit.Abstractions;
|
|
|
|
|
|
|
|
|
|
namespace LibMpcTest
|
|
|
|
|
{
|
|
|
|
|
public class LibMpcTest : IClassFixture<MpdServerTest>, IDisposable
|
|
|
|
|
{
|
2016-12-13 12:12:51 +00:00
|
|
|
|
private readonly MpdServerTest _server;
|
2016-12-13 09:47:06 +00:00
|
|
|
|
private readonly ITestOutputHelper _output;
|
|
|
|
|
private readonly Mpc _mpc;
|
|
|
|
|
|
2016-12-13 12:12:51 +00:00
|
|
|
|
public LibMpcTest(MpdServerTest server, ITestOutputHelper output)
|
2016-12-13 09:47:06 +00:00
|
|
|
|
{
|
2016-12-13 12:12:51 +00:00
|
|
|
|
_server = server;
|
2016-12-13 09:47:06 +00:00
|
|
|
|
_output = output;
|
2016-12-13 12:12:51 +00:00
|
|
|
|
|
2016-12-13 09:47:06 +00:00
|
|
|
|
_mpc = new Mpc(new IPEndPoint(IPAddress.Loopback, 6600));
|
2016-12-16 10:28:21 +00:00
|
|
|
|
|
|
|
|
|
var connected = Task.Run(async () => await _mpc.ConnectAsync()).Result;
|
2016-12-13 09:47:06 +00:00
|
|
|
|
if (connected)
|
|
|
|
|
{
|
2016-12-19 11:12:22 +00:00
|
|
|
|
WriteLine("Connected to MPD.");
|
2016-12-13 09:47:06 +00:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2016-12-19 11:12:22 +00:00
|
|
|
|
WriteLine("Could not connect to MPD.");
|
2016-12-13 09:47:06 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2016-12-13 11:55:24 +00:00
|
|
|
|
[Fact]
|
2016-12-16 12:05:20 +00:00
|
|
|
|
public async Task TagTypesTest()
|
2016-12-13 11:55:24 +00:00
|
|
|
|
{
|
|
|
|
|
var response = await _mpc.SendAsync(new Commands.Reflection.TagTypes());
|
|
|
|
|
|
2016-12-19 11:12:22 +00:00
|
|
|
|
WriteLine("TagTypesTest Result:");
|
|
|
|
|
WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
|
2016-12-13 11:55:24 +00:00
|
|
|
|
|
2016-12-19 11:12:22 +00:00
|
|
|
|
Assert.True(response.Response.Body.Count().Equals(17));
|
2016-12-13 11:55:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-12-16 12:05:20 +00:00
|
|
|
|
[Fact]
|
|
|
|
|
public async Task ListAllTest()
|
|
|
|
|
{
|
|
|
|
|
var response = await _mpc.SendAsync(new Commands.Database.ListAll());
|
|
|
|
|
|
2016-12-19 11:12:22 +00:00
|
|
|
|
WriteLine("ListAllTest Result:");
|
|
|
|
|
WriteLine(JsonConvert.SerializeObject(response, Formatting.Indented));
|
2016-12-16 12:05:20 +00:00
|
|
|
|
|
2016-12-19 11:12:22 +00:00
|
|
|
|
Assert.True(response.Response.Body.SubDirectories.Count().Equals(4));
|
|
|
|
|
Assert.True(response.Response.Body.Files.Count().Equals(3));
|
2016-12-16 12:05:20 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-12-13 09:47:06 +00:00
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
_mpc?.DisconnectAsync().GetAwaiter().GetResult();
|
|
|
|
|
}
|
2016-12-19 11:12:22 +00:00
|
|
|
|
|
|
|
|
|
private void WriteLine(string value)
|
|
|
|
|
{
|
|
|
|
|
#if DEBUG
|
|
|
|
|
Debug.WriteLine(value);
|
|
|
|
|
#else
|
|
|
|
|
Console.Out.WriteLine(value);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
2016-12-13 09:47:06 +00:00
|
|
|
|
}
|
|
|
|
|
}
|