1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-14 11:23:42 +02:00
Sonarr/NzbDrone.Core.Test/CentralDispatchFixture.cs

145 lines
4.3 KiB
C#
Raw Normal View History

2013-01-20 00:08:03 +03:00
using System;
2011-07-08 08:41:08 +03:00
using System.Collections.Generic;
using System.Linq;
2013-02-19 04:13:42 +03:00
using System.Reflection;
2013-01-03 04:09:13 +03:00
using Autofac;
2011-07-08 08:41:08 +03:00
using FluentAssertions;
using NCrunch.Framework;
2011-07-08 08:41:08 +03:00
using NUnit.Framework;
2013-02-17 02:29:21 +03:00
using NzbDrone.Common;
2013-02-21 10:07:34 +03:00
using NzbDrone.Core.Indexers;
2011-12-02 04:33:17 +03:00
using NzbDrone.Core.Jobs;
2011-07-08 08:41:08 +03:00
using NzbDrone.Core.Providers;
using NzbDrone.Core.Providers.ExternalNotification;
using NzbDrone.Core.Providers.Metadata;
2011-07-08 08:41:08 +03:00
using NzbDrone.Core.Test.Framework;
namespace NzbDrone.Core.Test
{
2013-02-19 04:13:42 +03:00
[Ignore]
2011-07-08 08:41:08 +03:00
[TestFixture]
[ExclusivelyUses("REAL_LOG_FILE")]
2013-01-20 00:08:03 +03:00
[Serial]
class CentralDispatchFixture : CoreTest
2011-07-08 08:41:08 +03:00
{
2013-02-19 04:13:42 +03:00
static readonly Assembly NzbDroneCore = Assembly.Load("NzbDrone.Core");
readonly IList<string> indexers = NzbDroneCore.GetTypes().Where(t => t.IsSubclassOf(typeof(IndexerBase))).Select(c => c.ToString()).ToList();
readonly IList<string> jobs = NzbDroneCore.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IJob))).Select(c => c.ToString()).ToList();
readonly IList<Type> extNotifications = NzbDroneCore.GetTypes().Where(t => t.IsSubclassOf(typeof(ExternalNotificationBase))).ToList();
readonly IList<Type> metadata = NzbDroneCore.GetTypes().Where(t => t.IsSubclassOf(typeof(MetadataBase))).ToList();
2011-07-08 08:41:08 +03:00
2013-01-19 22:42:06 +03:00
private readonly IContainer kernel;
2011-11-08 23:12:54 +03:00
2011-11-17 09:40:54 +03:00
public CentralDispatchFixture()
2011-11-08 23:12:54 +03:00
{
2013-02-17 02:29:21 +03:00
if (EnvironmentProvider.IsMono)
{
throw new IgnoreException("SqlCe is not supported");
}
2013-02-16 22:23:31 +03:00
2011-11-17 09:40:54 +03:00
InitLogging();
2011-11-08 23:12:54 +03:00
}
2011-07-08 08:41:08 +03:00
[Test]
public void InitAppTest()
{
2011-11-17 09:40:54 +03:00
kernel.Should().NotBeNull();
2011-07-08 08:41:08 +03:00
}
[Test]
public void Resolve_all_providers()
{
2013-02-19 04:13:42 +03:00
var providers = NzbDroneCore.GetTypes().Where(t => t.Name.EndsWith("Provider")).ToList();
2011-07-08 08:41:08 +03:00
providers.Should().NotBeEmpty();
foreach (var provider in providers)
{
Console.WriteLine("Resolving " + provider.Name);
2013-01-03 04:09:13 +03:00
kernel.Resolve(provider).Should().NotBeNull();
2011-07-08 08:41:08 +03:00
}
}
[Test]
public void All_jobs_should_be_registered()
{
2013-01-03 04:09:13 +03:00
var registeredJobs = kernel.Resolve<IEnumerable<IJob>>();
2011-07-08 08:41:08 +03:00
jobs.Should().NotBeEmpty();
registeredJobs.Should().HaveSameCount(jobs);
}
[Test]
public void All_indexers_should_be_registered()
{
2013-01-03 04:09:13 +03:00
var registeredIndexers = kernel.Resolve<IEnumerable<IndexerBase>>();
2011-07-08 08:41:08 +03:00
indexers.Should().NotBeEmpty();
registeredIndexers.Should().HaveSameCount(indexers);
}
[Test]
public void All_externalNotifiers_should_be_registered()
{
var externalNotificationBases = kernel.Resolve<IEnumerable<ExternalNotificationBase>>();
extNotifications.Should().NotBeEmpty();
externalNotificationBases.Should().HaveSameCount(extNotifications);
}
[Test]
public void All_metadata_clients_should_be_registered()
{
var metadataBases = kernel.Resolve<IEnumerable<MetadataBase>>();
metadata.Should().NotBeEmpty();
metadataBases.Should().HaveSameCount(metadata);
}
2011-07-08 08:41:08 +03:00
[Test]
public void jobs_are_initialized()
{
kernel.Resolve<IJobRepository>().All().Should().HaveSameCount(jobs);
2011-07-08 08:41:08 +03:00
}
[Test]
public void indexers_are_initialized()
{
2013-02-21 10:07:34 +03:00
kernel.Resolve<IIndexerService>().All().Select(c => c.Type).Should().BeEquivalentTo(indexers);
2011-07-08 08:41:08 +03:00
}
[Test]
public void externalNotifiers_are_initialized()
{
kernel.Resolve<ExternalNotificationProvider>().All().Should().HaveSameCount(extNotifications);
}
[Test]
public void metadata_clients_are_initialized()
{
kernel.Resolve<MetadataProvider>().All().Should().HaveSameCount(metadata);
}
2011-07-08 08:41:08 +03:00
[Test]
public void quality_profile_initialized()
{
kernel.Resolve<QualityProvider>().All().Should().HaveCount(2);
2011-07-08 08:41:08 +03:00
}
[Test]
public void JobProvider_should_be_singletone()
{
var first = kernel.Resolve<JobController>();
var second = kernel.Resolve<JobController>();
first.Should().BeSameAs(second);
}
2011-07-08 08:41:08 +03:00
}
}