You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/src/NzbDrone.Integration.Test/ApiTests/DownloadClientFixture.cs

128 lines
3.9 KiB

using System.Linq;
using FluentAssertions;
using NUnit.Framework;
namespace NzbDrone.Integration.Test.ApiTests
{
[TestFixture]
public class DownloadClientFixture : IntegrationTest
{
[Test]
[Order(0)]
public void add_downloadclient_without_name_should_return_badrequest()
{
EnsureNoDownloadClient();
var schema = DownloadClients.Schema().First(v => v.Implementation == "UsenetBlackhole");
schema.Enable = true;
schema.Fields.First(v => v.Name == "watchFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Watch");
schema.Fields.First(v => v.Name == "nzbFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Nzb");
DownloadClients.InvalidPost(schema);
}
[Test]
[Order(0)]
public void add_downloadclient_without_nzbfolder_should_return_badrequest()
{
EnsureNoDownloadClient();
var schema = DownloadClients.Schema().First(v => v.Implementation == "UsenetBlackhole");
schema.Enable = true;
schema.Name = "Test UsenetBlackhole";
schema.Fields.First(v => v.Name == "watchFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Watch");
DownloadClients.InvalidPost(schema);
}
[Test]
[Order(0)]
public void add_downloadclient_without_watchfolder_should_return_badrequest()
{
EnsureNoDownloadClient();
var schema = DownloadClients.Schema().First(v => v.Implementation == "UsenetBlackhole");
schema.Enable = true;
schema.Name = "Test UsenetBlackhole";
schema.Fields.First(v => v.Name == "nzbFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Nzb");
DownloadClients.InvalidPost(schema);
}
[Test]
[Order(1)]
public void add_downloadclient()
{
EnsureNoDownloadClient();
var schema = DownloadClients.Schema().First(v => v.Implementation == "UsenetBlackhole");
schema.Enable = true;
schema.Name = "Test UsenetBlackhole";
schema.Fields.First(v => v.Name == "watchFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Watch");
schema.Fields.First(v => v.Name == "nzbFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Nzb");
var result = DownloadClients.Post(schema);
result.Enable.Should().BeTrue();
}
[Test]
[Order(2)]
public void get_all_downloadclients()
{
EnsureDownloadClient();
var clients = DownloadClients.All();
clients.Should().NotBeNullOrEmpty();
}
[Test]
[Order(2)]
public void get_downloadclient_by_id()
{
var client = EnsureDownloadClient();
var result = DownloadClients.Get(client.Id);
result.Should().NotBeNull();
}
[Test]
public void get_downloadclient_by_unknown_id_should_return_404()
{
var result = DownloadClients.InvalidGet(1000000);
}
[Test]
[Order(3)]
public void update_downloadclient()
{
EnsureNoDownloadClient();
var client = EnsureDownloadClient();
client.Fields.First(v => v.Name == "nzbFolder").Value = GetTempDirectory("Download", "UsenetBlackhole", "Nzb2");
var result = DownloadClients.Put(client);
result.Should().NotBeNull();
}
[Test]
[Order(4)]
public void delete_downloadclient()
{
var client = EnsureDownloadClient();
DownloadClients.Get(client.Id).Should().NotBeNull();
DownloadClients.Delete(client.Id);
DownloadClients.All().Should().NotContain(v => v.Id == client.Id);
}
}
}