fixed some broken tests.

pull/6/head
kay.one 12 years ago
parent fd8ad73476
commit edf7cc678d

@ -80,9 +80,9 @@
<VisualStudio> <VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties> <WebProjectProperties>
<UseIIS>True</UseIIS> <UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort> <AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>0</DevelopmentServerPort> <DevelopmentServerPort>12766</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath> <DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:55352/</IISUrl> <IISUrl>http://localhost:55352/</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication> <NTLMAuthentication>False</NTLMAuthentication>

@ -31,10 +31,10 @@ namespace NzbDrone.Common.Test
const string key = "Port"; const string key = "Port";
const string value = "8989"; const string value = "8989";
//Act
var result = Mocker.Resolve<ConfigFileProvider>().GetValue(key, value); var result = Mocker.Resolve<ConfigFileProvider>().GetValue(key, value);
//Assert
result.Should().Be(value); result.Should().Be(value);
} }
@ -44,10 +44,10 @@ namespace NzbDrone.Common.Test
const string key = "Port"; const string key = "Port";
const int value = 8989; const int value = 8989;
//Act
var result = Mocker.Resolve<ConfigFileProvider>().GetValueInt(key, value); var result = Mocker.Resolve<ConfigFileProvider>().GetValueInt(key, value);
//Assert
result.Should().Be(value); result.Should().Be(value);
} }
@ -57,20 +57,20 @@ namespace NzbDrone.Common.Test
const string key = "LaunchBrowser"; const string key = "LaunchBrowser";
const bool value = true; const bool value = true;
//Act
var result = Mocker.Resolve<ConfigFileProvider>().GetValueBoolean(key, value); var result = Mocker.Resolve<ConfigFileProvider>().GetValueBoolean(key, value);
//Assert
result.Should().BeTrue(); result.Should().BeTrue();
} }
[Test] [Test]
public void GetLaunchBrowser_Success() public void GetLaunchBrowser_Success()
{ {
//Act
var result = Mocker.Resolve<ConfigFileProvider>().LaunchBrowser; var result = Mocker.Resolve<ConfigFileProvider>().LaunchBrowser;
//Assert
result.Should().Be(true); result.Should().Be(true);
} }
@ -79,10 +79,10 @@ namespace NzbDrone.Common.Test
{ {
const int value = 8989; const int value = 8989;
//Act
var result = Mocker.Resolve<ConfigFileProvider>().Port; var result = Mocker.Resolve<ConfigFileProvider>().Port;
//Assert
result.Should().Be(value); result.Should().Be(value);
} }
@ -92,10 +92,10 @@ namespace NzbDrone.Common.Test
const string key = "LaunchBrowser"; const string key = "LaunchBrowser";
const bool value = false; const bool value = false;
//Act
Mocker.Resolve<ConfigFileProvider>().SetValue(key, value); Mocker.Resolve<ConfigFileProvider>().SetValue(key, value);
//Assert
var result = Mocker.Resolve<ConfigFileProvider>().LaunchBrowser; var result = Mocker.Resolve<ConfigFileProvider>().LaunchBrowser;
result.Should().Be(value); result.Should().Be(value);
} }
@ -106,10 +106,10 @@ namespace NzbDrone.Common.Test
const string key = "Port"; const string key = "Port";
const int value = 12345; const int value = 12345;
//Act
Mocker.Resolve<ConfigFileProvider>().SetValue(key, value); Mocker.Resolve<ConfigFileProvider>().SetValue(key, value);
//Assert
var result = Mocker.Resolve<ConfigFileProvider>().Port; var result = Mocker.Resolve<ConfigFileProvider>().Port;
result.Should().Be(value); result.Should().Be(value);
} }
@ -120,10 +120,10 @@ namespace NzbDrone.Common.Test
const string key = "Hello"; const string key = "Hello";
const string value = "World"; const string value = "World";
//Act
var result = Mocker.Resolve<ConfigFileProvider>().GetValue(key, value); var result = Mocker.Resolve<ConfigFileProvider>().GetValue(key, value);
//Assert
result.Should().Be(value); result.Should().Be(value);
} }
@ -131,10 +131,10 @@ namespace NzbDrone.Common.Test
public void GetAuthenticationType_No_Existing_Value() public void GetAuthenticationType_No_Existing_Value()
{ {
//Act
var result = Mocker.Resolve<ConfigFileProvider>().AuthenticationType; var result = Mocker.Resolve<ConfigFileProvider>().AuthenticationType;
//Assert
result.Should().Be(AuthenticationType.Anonymous); result.Should().Be(AuthenticationType.Anonymous);
} }
@ -144,22 +144,22 @@ namespace NzbDrone.Common.Test
Mocker.Resolve<ConfigFileProvider>().SetValue("AuthenticationType", 1); Mocker.Resolve<ConfigFileProvider>().SetValue("AuthenticationType", 1);
//Act
var result = Mocker.Resolve<ConfigFileProvider>().AuthenticationType; var result = Mocker.Resolve<ConfigFileProvider>().AuthenticationType;
//Assert
result.Should().Be(AuthenticationType.Windows); result.Should().Be(AuthenticationType.Windows);
} }
[Test] [Test]
public void Guid_should_return_the_same_every_time() public void Guid_should_return_the_same_every_time()
{ {
//Act
var firstResponse = Mocker.Resolve<ConfigFileProvider>().Guid; var firstResponse = Mocker.Resolve<ConfigFileProvider>().Guid;
var secondResponse = Mocker.Resolve<ConfigFileProvider>().Guid; var secondResponse = Mocker.Resolve<ConfigFileProvider>().Guid;
//Assert
secondResponse.Should().Be(firstResponse); secondResponse.Should().Be(firstResponse);
} }
} }

@ -24,13 +24,13 @@ namespace NzbDrone.Core.Test.Framework
catch { } catch { }
} }
//Delete App_data folder /* //Delete App_data folder
var appData = new EnvironmentProvider().GetAppDataPath(); var appData = new EnvironmentProvider().GetAppDataPath();
if (Directory.Exists(appData)) if (Directory.Exists(appData))
{ {
Directory.Delete(appData, true); //Directory.Delete(appData, true);
} }*/
TestDbHelper.CreateDataBaseTemplate(); TestDbHelper.CreateDataBaseTemplate();
} }

@ -0,0 +1,29 @@
namespace NzbDrone.Core.Test.Framework
{
public abstract class CoreTest<TSubject> : CoreTest where TSubject : class
{
private TSubject _subject;
protected TSubject Subject
{
get
{
if (_subject == null)
{
_subject = Mocker.Resolve<TSubject>();
}
return _subject;
}
}
protected void InitiateSubject()
{
_subject = Mocker.Resolve<TSubject>();
}
}
}

@ -138,6 +138,7 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Framework\CoreTestTSubject.cs" />
<Compile Include="HelperTests\XElementHelperTests\ConvertToTFixture.cs" /> <Compile Include="HelperTests\XElementHelperTests\ConvertToTFixture.cs" />
<Compile Include="IndexerTests\NzbxFixture.cs" /> <Compile Include="IndexerTests\NzbxFixture.cs" />
<Compile Include="JobTests\RenameSeasonJobFixture.cs" /> <Compile Include="JobTests\RenameSeasonJobFixture.cs" />

@ -35,7 +35,7 @@ namespace NzbDrone.Core.Test.ProviderTests
settings.Enable = true; settings.Enable = true;
indexerProvider.SaveSettings(settings); indexerProvider.SaveSettings(settings);
//Assert
indexerProvider.All(); indexerProvider.All();
@ -56,7 +56,7 @@ namespace NzbDrone.Core.Test.ProviderTests
settings.Enable = false; settings.Enable = false;
indexerProvider.SaveSettings(settings); indexerProvider.SaveSettings(settings);
//Assert
indexerProvider.All().Should().HaveCount(1); indexerProvider.All().Should().HaveCount(1);
indexerProvider.GetEnabledIndexers().Should().BeEmpty(); indexerProvider.GetEnabledIndexers().Should().BeEmpty();
@ -72,7 +72,7 @@ namespace NzbDrone.Core.Test.ProviderTests
var indexerProvider = Mocker.Resolve<IndexerProvider>(); var indexerProvider = Mocker.Resolve<IndexerProvider>();
//Assert
indexerProvider.All(); indexerProvider.All();
indexerProvider.All().Should().HaveCount(1); indexerProvider.All().Should().HaveCount(1);
indexerProvider.GetEnabledIndexers().Should().HaveCount(1); indexerProvider.GetEnabledIndexers().Should().HaveCount(1);
@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test.ProviderTests
var indexerProvider = Mocker.Resolve<IndexerProvider>(); var indexerProvider = Mocker.Resolve<IndexerProvider>();
//Assert
indexerProvider.All(); indexerProvider.All();
indexerProvider.All().Should().HaveCount(1); indexerProvider.All().Should().HaveCount(1);
indexerProvider.GetEnabledIndexers().Should().HaveCount(0); indexerProvider.GetEnabledIndexers().Should().HaveCount(0);

@ -71,12 +71,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob }; IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
//Act
ResetLastExecution(); ResetLastExecution();
Mocker.Resolve<JobProvider>().QueueScheduled(); Mocker.Resolve<JobProvider>().QueueScheduled();
WaitForQueue(); WaitForQueue();
//Assert
var settings = Mocker.Resolve<JobProvider>().All(); var settings = Mocker.Resolve<JobProvider>().All();
settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10)); settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10));
fakeJob.ExecutionCount.Should().Be(1); fakeJob.ExecutionCount.Should().Be(1);
@ -88,12 +88,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { brokenJob }; IEnumerable<IJob> BaseFakeJobs = new List<IJob> { brokenJob };
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
//Act
ResetLastExecution(); ResetLastExecution();
Mocker.Resolve<JobProvider>().QueueScheduled(); Mocker.Resolve<JobProvider>().QueueScheduled();
WaitForQueue(); WaitForQueue();
//Assert
var settings = Mocker.Resolve<JobProvider>().All(); var settings = Mocker.Resolve<JobProvider>().All();
settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10)); settings.First().LastExecution.Should().BeWithin(TimeSpan.FromSeconds(10));
settings.First().Success.Should().BeFalse(); settings.First().Success.Should().BeFalse();
@ -107,7 +107,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob }; IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
//Act
ResetLastExecution(); ResetLastExecution();
Mocker.Resolve<JobProvider>().QueueScheduled(); Mocker.Resolve<JobProvider>().QueueScheduled();
@ -116,7 +116,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
Mocker.Resolve<JobProvider>().QueueScheduled(); Mocker.Resolve<JobProvider>().QueueScheduled();
WaitForQueue(); WaitForQueue();
//Assert
fakeJob.ExecutionCount.Should().Be(1); fakeJob.ExecutionCount.Should().Be(1);
} }
@ -131,13 +131,13 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
//Act
jobProvider.QueueJob(typeof(FakeJob)); jobProvider.QueueJob(typeof(FakeJob));
WaitForQueue(); WaitForQueue();
jobProvider.QueueJob(typeof(FakeJob)); jobProvider.QueueJob(typeof(FakeJob));
WaitForQueue(); WaitForQueue();
//Assert
jobProvider.Queue.Should().BeEmpty(); jobProvider.Queue.Should().BeEmpty();
fakeJob.ExecutionCount.Should().Be(2); fakeJob.ExecutionCount.Should().Be(2);
} }
@ -170,14 +170,14 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
//Act
jobProvider.QueueJob(typeof(BrokenJob)); jobProvider.QueueJob(typeof(BrokenJob));
WaitForQueue(); WaitForQueue();
jobProvider.QueueJob(typeof(BrokenJob)); jobProvider.QueueJob(typeof(BrokenJob));
WaitForQueue(); WaitForQueue();
//Assert
brokenJob.ExecutionCount.Should().Be(2); brokenJob.ExecutionCount.Should().Be(2);
ExceptionVerification.ExpectedErrors(2); ExceptionVerification.ExpectedErrors(2);
} }
@ -192,12 +192,12 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
//Act
jobProvider.QueueJob(typeof(SlowJob)); jobProvider.QueueJob(typeof(SlowJob));
jobProvider.QueueScheduled(); jobProvider.QueueScheduled();
WaitForQueue(); WaitForQueue();
//Assert
slowJob.ExecutionCount.Should().Be(1); slowJob.ExecutionCount.Should().Be(1);
fakeJob.ExecutionCount.Should().Be(0); fakeJob.ExecutionCount.Should().Be(0);
} }
@ -239,7 +239,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
//assert
var timers = jobProvider.All(); var timers = jobProvider.All();
timers.Should().HaveCount(1); timers.Should().HaveCount(1);
timers[0].Interval.Should().Be((Int32)fakeJob.DefaultInterval.TotalMinutes); timers[0].Interval.Should().Be((Int32)fakeJob.DefaultInterval.TotalMinutes);
@ -261,7 +261,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
var jobProvider = Mocker.Resolve<JobProvider>(); Mocker.Resolve<JobProvider>();
} }
var Mocker2 = new AutoMoqer(); var Mocker2 = new AutoMoqer();
@ -270,7 +270,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var assertjobProvider = Mocker2.Resolve<JobProvider>(); var assertjobProvider = Mocker2.Resolve<JobProvider>();
var timers = assertjobProvider.All(); var timers = assertjobProvider.All();
//Assert
timers.Should().HaveCount(1); timers.Should().HaveCount(1);
timers[0].Enable.Should().BeTrue(); timers[0].Enable.Should().BeTrue();
} }
@ -330,7 +330,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
Mocker.Resolve<JobProvider>(); Mocker.Resolve<JobProvider>();
//Assert
var registeredJobs = Db.Fetch<JobDefinition>(); var registeredJobs = Db.Fetch<JobDefinition>();
registeredJobs.Should().HaveCount(1); registeredJobs.Should().HaveCount(1);
registeredJobs.First().TypeName.Should().Be(fakeJob.GetType().ToString()); registeredJobs.First().TypeName.Should().Be(fakeJob.GetType().ToString());
@ -350,7 +350,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
//Assert
jobProvider.All().Should().HaveCount(1); jobProvider.All().Should().HaveCount(1);
jobProvider.All().First().Enable.Should().BeFalse(); jobProvider.All().First().Enable.Should().BeFalse();
} }
@ -366,7 +366,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
WaitForQueue(); WaitForQueue();
//Assert
disabledJob.ExecutionCount.Should().Be(0); disabledJob.ExecutionCount.Should().Be(0);
} }
@ -376,14 +376,14 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob }; IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
//Act
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
ResetLastExecution(); ResetLastExecution();
jobProvider.QueueJob(typeof(FakeJob), 10); jobProvider.QueueJob(typeof(FakeJob), 10);
WaitForQueue(); WaitForQueue();
//Assert
jobProvider.All().First().LastExecution.Should().HaveYear(2000); jobProvider.All().First().LastExecution.Should().HaveYear(2000);
} }
@ -393,13 +393,13 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob }; IEnumerable<IJob> BaseFakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(BaseFakeJobs); Mocker.SetConstant(BaseFakeJobs);
//Act
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
jobProvider.QueueJob(typeof(FakeJob), 10); jobProvider.QueueJob(typeof(FakeJob), 10);
WaitForQueue(); WaitForQueue();
//Assert
jobProvider.All().First().Success.Should().BeFalse(); jobProvider.All().First().Success.Should().BeFalse();
} }
@ -416,7 +416,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
Options = new { TargetId = 12 } Options = new { TargetId = 12 }
}; };
//Act
var jobProvider = Mocker.Resolve<JobProvider>(); var jobProvider = Mocker.Resolve<JobProvider>();
jobProvider.Queue.Add(stuckQueueItem); jobProvider.Queue.Add(stuckQueueItem);
@ -424,7 +424,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
jobProvider.QueueJob(stuckQueueItem.JobType, stuckQueueItem.Options); jobProvider.QueueJob(stuckQueueItem.JobType, stuckQueueItem.Options);
WaitForQueue(); WaitForQueue();
//Assert
fakeJob.ExecutionCount.Should().Be(1); fakeJob.ExecutionCount.Should().Be(1);
} }
@ -445,7 +445,7 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
WaitForQueue(); WaitForQueue();
//Assert
slowJob.ExecutionCount.Should().Be(1); slowJob.ExecutionCount.Should().Be(1);
disabledJob.ExecutionCount.Should().Be(1); disabledJob.ExecutionCount.Should().Be(1);
} }

@ -14,93 +14,64 @@ namespace NzbDrone.Core.Test.ProviderTests
{ {
[TestFixture] [TestFixture]
// ReSharper disable InconsistentNaming // ReSharper disable InconsistentNaming
public class NewznabProviderTest : CoreTest public class NewznabProviderTest : CoreTest<NewznabProvider>
{ {
[SetUp]
public void SetUp()
{
WithRealDb();
InitiateSubject();
}
[Test] [Test]
public void Save_should_clean_url_before_inserting() public void Save_should_clean_url_before_inserting()
{ {
//Setup
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world" }; var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world" };
var expectedUrl = "http://www.nzbdrone.com"; const string expectedUrl = "http://www.nzbdrone.com";
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
//Act var result = Subject.Save(newznab);
var result = Mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert Db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
} }
[Test] [Test]
public void Save_should_clean_url_before_updating() public void Save_should_clean_url_before_updating()
{ {
//Setup var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world" };
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com" };
var expectedUrl = "http://www.nzbdrone.com";
var newUrl = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world";
var db = TestDbHelper.GetEmptyDatabase(); var result = Subject.Save(newznab);
Mocker.SetConstant(db);
newznab.Id = Convert.ToInt32(db.Insert(newznab));
newznab.Url = newUrl;
//Act
var result = Mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert Subject.All().Single(c => c.Id == result).Url.Should().Be("http://www.nzbdrone.com");
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
} }
[Test] [Test]
public void Save_should_clean_url_before_inserting_when_url_is_not_empty() public void Save_should_clean_url_before_inserting_when_url_is_not_empty()
{ {
//Setup
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "" }; var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "" };
var expectedUrl = "";
var result = Subject.Save(newznab);
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
//Act
var result = Mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert Subject.All().Single(c => c.Id == result).Url.Should().Be("");
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
} }
[Test] [Test]
public void Save_should_clean_url_before_updating_when_url_is_not_empty() public void Save_should_clean_url_before_updating_when_url_is_not_empty()
{ {
//Setup var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "" };
var newznab = new NewznabDefinition { Name = "Newznab Provider", Enable = true, Url = "http://www.nzbdrone.com" }; var result = Subject.Save(newznab);
var expectedUrl = "";
var newUrl = "";
var db = TestDbHelper.GetEmptyDatabase(); Db.Single<NewznabDefinition>(result).Url.Should().Be("");
Mocker.SetConstant(db);
newznab.Id = Convert.ToInt32(db.Insert(newznab));
newznab.Url = newUrl;
//Act
var result = Mocker.Resolve<NewznabProvider>().Save(newznab);
//Assert
db.Single<NewznabDefinition>(result).Url.Should().Be(expectedUrl);
} }
[Test] [Test]
[Ignore("No longer clean newznab URLs")] [Ignore("No longer clean newznab URLs")]
public void SaveAll_should_clean_urls_before_updating() public void SaveAll_should_clean_urls_before_updating()
{ {
//Setup
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5) var definitions = Builder<NewznabDefinition>.CreateListOfSize(5)
.All() .All()
.With(d => d.Url = "http://www.nzbdrone.com") .With(d => d.Url = "http://www.nzbdrone.com")
@ -108,25 +79,22 @@ namespace NzbDrone.Core.Test.ProviderTests
var expectedUrl = "http://www.nzbdrone.com"; var expectedUrl = "http://www.nzbdrone.com";
var newUrl = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world"; var newUrl = "http://www.nzbdrone.com/gibberish/test.aspx?hello=world";
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.InsertMany(definitions); Db.InsertMany(definitions);
definitions.ToList().ForEach(d => d.Url = newUrl); definitions.ToList().ForEach(d => d.Url = newUrl);
//Act
Mocker.Resolve<NewznabProvider>().SaveAll(definitions);
//Assert Subject.SaveAll(definitions);
db.Fetch<NewznabDefinition>().Where(d => d.Url == expectedUrl).Should().HaveCount(5);
Db.Fetch<NewznabDefinition>().Where(d => d.Url == expectedUrl).Should().HaveCount(5);
} }
[Test] [Test]
public void Enabled_should_return_all_enabled_newznab_providers() public void Enabled_should_return_all_enabled_newznab_providers()
{ {
//Setup
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5) var definitions = Builder<NewznabDefinition>.CreateListOfSize(5)
.TheFirst(2) .TheFirst(2)
.With(d => d.Enable = false) .With(d => d.Enable = false)
@ -134,16 +102,13 @@ namespace NzbDrone.Core.Test.ProviderTests
.With(d => d.Enable = true) .With(d => d.Enable = true)
.Build(); .Build();
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.InsertMany(definitions); Db.InsertMany(definitions);
var result = Subject.Enabled();
//Act
var result = Mocker.Resolve<NewznabProvider>().Enabled();
//Assert
result.Should().HaveCount(3); result.Should().HaveCount(3);
result.All(d => d.Enable).Should().BeTrue(); result.All(d => d.Enable).Should().BeTrue();
} }
@ -151,81 +116,54 @@ namespace NzbDrone.Core.Test.ProviderTests
[Test] [Test]
public void All_should_return_all_newznab_providers() public void All_should_return_all_newznab_providers()
{ {
//Setup
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5) var userIndexers = Builder<NewznabDefinition>.CreateListOfSize(5)
.TheFirst(2) .All().With(c => c.Url = "http://www.host.com/12")
.With(d => d.Enable = false)
.TheLast(3)
.With(d => d.Enable = true)
.Build(); .Build();
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.InsertMany(definitions); Db.InsertMany(userIndexers);
//Act var result = Subject.All();
var result = Mocker.Resolve<NewznabProvider>().All();
//Assert result.Should().HaveCount(8);
result.Should().HaveCount(5);
} }
[Test] [Test]
public void Delete_should_delete_newznab_provider() public void All_should_return_empty_list_when_no_indexers_exist()
{ {
//Setup Db.Delete<NewznabDefinition>("");
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5)
.TheFirst(2)
.With(d => d.Enable = false)
.TheLast(3)
.With(d => d.Enable = true)
.Build();
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.InsertMany(definitions);
//Act Subject.All().Should().NotBeNull();
Mocker.Resolve<NewznabProvider>().Delete(1); Subject.All().Should().BeEmpty();
//Assert
var result = db.Fetch<NewznabDefinition>();
result.Should().HaveCount(4);
result.Any(d => d.Id == 1).Should().BeFalse();
} }
[Test] [Test]
public void InitializeNewznabIndexers_should_initialize_new_indexers() public void Delete_should_delete_newznab_provider()
{ {
//Setup var toBeDelete = Subject.All()[2];
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5)
.All()
.With(d => d.Url = "http://www.nzbdrone.com")
.Build();
Subject.Delete(toBeDelete.Id);
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
Mocker.SetConstant<IEnumerable<NewznabDefinition>>(definitions); Subject.All().Should().NotBeEmpty();
Subject.All().Should().NotContain(c => c.Id == toBeDelete.Id);
}
//Act [Test]
Mocker.Resolve<NewznabProvider>(); public void InitializeNewznabIndexers_should_initialize_build_in_indexers()
{
var indexers = Subject.All();
//Assert indexers.Should().NotBeEmpty();
var result = db.Fetch<NewznabDefinition>(); indexers.Should().OnlyContain(i => i.BuiltIn);
result.Should().HaveCount(5);
result.Should().OnlyContain(i => i.BuiltIn);
} }
[Test] [Test]
public void InitializeNewznabIndexers_should_initialize_new_indexers_only() public void InitializeNewznabIndexers_should_initialize_new_indexers_only()
{ {
//Setup
var definitions = Builder<NewznabDefinition>.CreateListOfSize(5) var definitions = Builder<NewznabDefinition>.CreateListOfSize(5)
.All() .All()
.With(d => d.Id = 0) .With(d => d.Id = 0)
@ -235,88 +173,46 @@ namespace NzbDrone.Core.Test.ProviderTests
.With(d => d.Url = "http://www.nzbdrone.com") .With(d => d.Url = "http://www.nzbdrone.com")
.Build(); .Build();
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.Insert(definitions[0]); Db.Insert(definitions[0]);
db.Insert(definitions[2]); Db.Insert(definitions[2]);
Mocker.SetConstant<IEnumerable<NewznabDefinition>>(definitions); Mocker.SetConstant<IEnumerable<NewznabDefinition>>(definitions);
//Act var result = Db.Fetch<NewznabDefinition>();
Mocker.Resolve<NewznabProvider>();
//Assert
var result = db.Fetch<NewznabDefinition>();
result.Should().HaveCount(2);
result.Where(d => d.Url == "http://www.nzbdrone.com").Should().HaveCount(1); result.Where(d => d.Url == "http://www.nzbdrone.com").Should().HaveCount(1);
result.Where(d => d.Url == "http://www.nzbdrone2.com").Should().HaveCount(1); result.Where(d => d.Url == "http://www.nzbdrone2.com").Should().HaveCount(1);
} }
[Test]
public void InitializeNewznabIndexers_should_update_matching_indexer_to_be_builtin()
{
//Setup
var definition = Builder<NewznabDefinition>.CreateNew()
.With(d => d.Url = "http://www.nzbdrone2.com")
.With(d => d.BuiltIn = false)
.Build();
var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db);
db.Insert(definition);
Mocker.SetConstant<IEnumerable<NewznabDefinition>>(new List<NewznabDefinition> { definition });
//Act
Mocker.Resolve<NewznabProvider>();
//Assert
var result = db.Fetch<NewznabDefinition>();
result.Should().HaveCount(1);
result.First().BuiltIn.Should().BeTrue();
}
[Test] [Test]
public void InitializeNewznabIndexers_should_not_blow_up_if_more_than_one_indexer_with_the_same_url_is_found() public void InitializeNewznabIndexers_should_not_blow_up_if_more_than_one_indexer_with_the_same_url_is_found()
{ {
//Setup
var definition = Builder<NewznabDefinition>.CreateNew() var definition = Builder<NewznabDefinition>.CreateNew()
.With(d => d.Url = "http://www.nzbdrone2.com") .With(d => d.Url = "http://www.nzbdrone2.com")
.With(d => d.BuiltIn = false) .With(d => d.BuiltIn = false)
.Build(); .Build();
var db = TestDbHelper.GetEmptyDatabase(); Db.Insert(definition);
Mocker.SetConstant(db); Db.Insert(definition);
db.Insert(definition);
db.Insert(definition);
Mocker.SetConstant<IEnumerable<NewznabDefinition>>(new List<NewznabDefinition> { definition }); Mocker.SetConstant<IEnumerable<NewznabDefinition>>(new List<NewznabDefinition> { definition });
var result = Db.Fetch<NewznabDefinition>().Where(c => c.BuiltIn == false);
//Act
Mocker.Resolve<NewznabProvider>();
//Assert
var result = db.Fetch<NewznabDefinition>();
result.Should().HaveCount(2); result.Should().HaveCount(2);
} }
[Test] [Test]
public void CheckHostname_should_do_nothing_if_hostname_is_valid() public void CheckHostname_should_do_nothing_if_hostname_is_valid()
{ {
Mocker.Resolve<NewznabProvider>().CheckHostname("http://www.google.com"); Subject.CheckHostname("http://www.google.com");
} }
[Test] [Test]
public void CheckHostname_should_log_error_and_throw_exception_if_dnsHostname_is_invalid() public void CheckHostname_should_log_error_and_throw_exception_if_dnsHostname_is_invalid()
{ {
Assert.Throws<SocketException>(() => Mocker.Resolve<NewznabProvider>().CheckHostname("http://BadName")); Assert.Throws<SocketException>(() => Subject.CheckHostname("http://BadName"));
ExceptionVerification.ExpectedErrors(1); ExceptionVerification.ExpectedErrors(1);
} }

@ -23,10 +23,10 @@ namespace NzbDrone.Core.Test.ProviderTests
var db = TestDbHelper.GetEmptyDatabase(); var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db); Mocker.SetConstant(db);
//Act
Mocker.Resolve<QualityTypeProvider>(); Mocker.Resolve<QualityTypeProvider>();
//Assert
var types = Mocker.Resolve<QualityTypeProvider>().All(); var types = Mocker.Resolve<QualityTypeProvider>().All();
types.Should().HaveCount(10); types.Should().HaveCount(10);
@ -51,10 +51,10 @@ namespace NzbDrone.Core.Test.ProviderTests
db.Insert(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 }); db.Insert(new QualityType { QualityTypeId = 1, Name = "SDTV", MinSize = 0, MaxSize = 100 });
//Act
Mocker.Resolve<QualityTypeProvider>(); Mocker.Resolve<QualityTypeProvider>();
//Assert
var types = Mocker.Resolve<QualityTypeProvider>().All(); var types = Mocker.Resolve<QualityTypeProvider>().All();
types.Should().HaveCount(QualityTypes.All().Count - 1); types.Should().HaveCount(QualityTypes.All().Count - 1);
@ -74,10 +74,10 @@ namespace NzbDrone.Core.Test.ProviderTests
db.InsertMany(fakeQualityTypes); db.InsertMany(fakeQualityTypes);
//Act
var result = Mocker.Resolve<QualityTypeProvider>().GetList(ids); var result = Mocker.Resolve<QualityTypeProvider>().GetList(ids);
//Assert
result.Should().HaveCount(ids.Count); result.Should().HaveCount(ids.Count);
} }
@ -95,10 +95,10 @@ namespace NzbDrone.Core.Test.ProviderTests
db.InsertMany(fakeQualityTypes); db.InsertMany(fakeQualityTypes);
//Act
var result = Mocker.Resolve<QualityTypeProvider>().GetList(ids); var result = Mocker.Resolve<QualityTypeProvider>().GetList(ids);
//Assert
result.Should().HaveCount(ids.Count); result.Should().HaveCount(ids.Count);
} }
} }

@ -29,11 +29,11 @@ namespace NzbDrone.Core.Test
Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.DVD }, Allowed = new List<QualityTypes> { QualityTypes.HDTV720p, QualityTypes.DVD },
}; };
//Act
var id = Convert.ToInt32(database.Insert(testProfile)); var id = Convert.ToInt32(database.Insert(testProfile));
var fetch = database.SingleOrDefault<QualityProfile>(id); var fetch = database.SingleOrDefault<QualityProfile>(id);
//Assert
Assert.AreEqual(id, fetch.QualityProfileId); Assert.AreEqual(id, fetch.QualityProfileId);
Assert.AreEqual(testProfile.Name, fetch.Name); Assert.AreEqual(testProfile.Name, fetch.Name);
Assert.AreEqual(testProfile.Cutoff, fetch.Cutoff); Assert.AreEqual(testProfile.Cutoff, fetch.Cutoff);
@ -52,11 +52,11 @@ namespace NzbDrone.Core.Test
Cutoff = QualityTypes.SDTV Cutoff = QualityTypes.SDTV
}; };
//Act
var id = Convert.ToInt32(database.Insert(testProfile)); var id = Convert.ToInt32(database.Insert(testProfile));
var fetch = database.SingleOrDefault<QualityProfile>(id); var fetch = database.SingleOrDefault<QualityProfile>(id);
//Assert
Assert.AreEqual(id, fetch.QualityProfileId); Assert.AreEqual(id, fetch.QualityProfileId);
Assert.AreEqual(testProfile.Name, fetch.Name); Assert.AreEqual(testProfile.Name, fetch.Name);
Assert.AreEqual(testProfile.Cutoff, fetch.Cutoff); Assert.AreEqual(testProfile.Cutoff, fetch.Cutoff);
@ -78,7 +78,7 @@ namespace NzbDrone.Core.Test
Cutoff = QualityTypes.SDTV Cutoff = QualityTypes.SDTV
}; };
//Act
var id = Convert.ToInt32(db.Insert(testProfile)); var id = Convert.ToInt32(db.Insert(testProfile));
var currentProfile = db.SingleOrDefault<QualityProfile>(id); var currentProfile = db.SingleOrDefault<QualityProfile>(id);
@ -89,7 +89,7 @@ namespace NzbDrone.Core.Test
var updated = Mocker.Resolve<QualityProvider>().Get(currentProfile.QualityProfileId); var updated = Mocker.Resolve<QualityProvider>().Get(currentProfile.QualityProfileId);
//Assert
updated.Name.Should().Be(currentProfile.Name); updated.Name.Should().Be(currentProfile.Name);
updated.Cutoff.Should().Be(QualityTypes.Bluray720p); updated.Cutoff.Should().Be(QualityTypes.Bluray720p);
updated.AllowedString.Should().Be(currentProfile.AllowedString); updated.AllowedString.Should().Be(currentProfile.AllowedString);
@ -134,10 +134,10 @@ namespace NzbDrone.Core.Test
var db = TestDbHelper.GetEmptyDatabase(); var db = TestDbHelper.GetEmptyDatabase();
Mocker.SetConstant(db); Mocker.SetConstant(db);
//Act
Mocker.Resolve<QualityProvider>(); Mocker.Resolve<QualityProvider>();
//Assert
var profiles = Mocker.Resolve<QualityProvider>().All(); var profiles = Mocker.Resolve<QualityProvider>().All();
@ -157,10 +157,10 @@ namespace NzbDrone.Core.Test
Mocker.SetConstant(db); Mocker.SetConstant(db);
var fakeProfile = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build(); var fakeProfile = Builder<QualityProfile>.CreateNew().With(p => p.Cutoff = QualityTypes.DVD).With(p => p.Allowed = new List<QualityTypes> { QualityTypes.SDTV, QualityTypes.DVD }).Build();
//Act
Mocker.Resolve<QualityProvider>().Add(fakeProfile); Mocker.Resolve<QualityProvider>().Add(fakeProfile);
//Assert
var profiles = Mocker.Resolve<QualityProvider>().All(); var profiles = Mocker.Resolve<QualityProvider>().All();

@ -18,7 +18,7 @@ namespace NzbDrone.Core
public static class ContainerExtentions public static class ContainerExtentions
{ {
private static Logger _logger = LogManager.GetLogger("ServiceRegistration"); private static readonly Logger _logger = LogManager.GetLogger("ServiceRegistration");
public static void RegisterCoreServices(this ContainerBuilder container) public static void RegisterCoreServices(this ContainerBuilder container)
{ {

@ -11,7 +11,7 @@ namespace NzbDrone.Core.Providers
{ {
public class NewznabProvider public class NewznabProvider
{ {
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private static readonly Logger logger = LogManager.GetCurrentClassLogger();
private readonly IDatabase _database; private readonly IDatabase _database;
public NewznabProvider(IDatabase database) public NewznabProvider(IDatabase database)
@ -51,11 +51,11 @@ namespace NzbDrone.Core.Providers
if (definition.Id == 0) if (definition.Id == 0)
{ {
Logger.Debug("Adding Newznab definitions for {0}", definition.Name); logger.Debug("Adding Newznab definitions for {0}", definition.Name);
return Convert.ToInt32(_database.Insert(definition)); return Convert.ToInt32(_database.Insert(definition));
} }
Logger.Debug("Updating Newznab definitions for {0}", definition.Name); logger.Debug("Updating Newznab definitions for {0}", definition.Name);
return _database.Update(definition); return _database.Update(definition);
} }
@ -75,13 +75,13 @@ namespace NzbDrone.Core.Providers
private void InitializeNewznabIndexers(IList<NewznabDefinition> indexers) private void InitializeNewznabIndexers(IList<NewznabDefinition> indexers)
{ {
Logger.Debug("Initializing Newznab indexers. Count {0}", indexers.Count); logger.Debug("Initializing Newznab indexers. Count {0}", indexers.Count);
try try
{ {
var currentIndexers = All(); var currentIndexers = All();
Logger.Debug("Deleting broken Newznab indexer"); logger.Debug("Deleting broken Newznab indexer");
var brokenIndexers = currentIndexers.Where(i => String.IsNullOrEmpty(i.Name) || String.IsNullOrWhiteSpace(i.Url)).ToList(); var brokenIndexers = currentIndexers.Where(i => String.IsNullOrEmpty(i.Name) || String.IsNullOrWhiteSpace(i.Url)).ToList();
brokenIndexers.ForEach(e => _database.Delete<NewznabDefinition>(e.Id)); brokenIndexers.ForEach(e => _database.Delete<NewznabDefinition>(e.Id));
@ -120,13 +120,13 @@ namespace NzbDrone.Core.Providers
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("An error occurred while setting up indexer: " + feedProvider.Name, ex); logger.ErrorException("An error occurred while setting up indexer: " + feedProvider.Name, ex);
} }
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.ErrorException("An Error occurred while initializing Newznab Indexers", ex); logger.ErrorException("An Error occurred while initializing Newznab Indexers", ex);
} }
} }
@ -146,8 +146,8 @@ namespace NzbDrone.Core.Providers
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.Error("Invalid address {0}, please correct the site URL.", url); logger.Error("Invalid address {0}, please correct the site URL.", url);
Logger.TraceException(ex.Message, ex); logger.TraceException(ex.Message, ex);
throw; throw;
} }

@ -1,12 +1,12 @@
<SolutionConfiguration> <SolutionConfiguration>
<FileVersion>1</FileVersion> <FileVersion>1</FileVersion>
<AutoEnableOnStartup>False</AutoEnableOnStartup> <AutoEnableOnStartup>True</AutoEnableOnStartup>
<AllowParallelTestExecution>false</AllowParallelTestExecution> <AllowParallelTestExecution>false</AllowParallelTestExecution>
<AllowTestsToRunInParallelWithThemselves>true</AllowTestsToRunInParallelWithThemselves> <AllowTestsToRunInParallelWithThemselves>false</AllowTestsToRunInParallelWithThemselves>
<FrameworkUtilisationTypeForNUnit>UseDynamicAnalysis</FrameworkUtilisationTypeForNUnit> <FrameworkUtilisationTypeForNUnit>UseDynamicAnalysis</FrameworkUtilisationTypeForNUnit>
<FrameworkUtilisationTypeForGallio>UseStaticAnalysis</FrameworkUtilisationTypeForGallio> <FrameworkUtilisationTypeForGallio>Disabled</FrameworkUtilisationTypeForGallio>
<FrameworkUtilisationTypeForMSpec>UseStaticAnalysis</FrameworkUtilisationTypeForMSpec> <FrameworkUtilisationTypeForMSpec>Disabled</FrameworkUtilisationTypeForMSpec>
<FrameworkUtilisationTypeForMSTest>UseStaticAnalysis</FrameworkUtilisationTypeForMSTest> <FrameworkUtilisationTypeForMSTest>Disabled</FrameworkUtilisationTypeForMSTest>
<AdditionalFilesToInclude>NzbDrone.Web\**.*</AdditionalFilesToInclude> <AdditionalFilesToInclude>NzbDrone.Web\**.*</AdditionalFilesToInclude>
<EngineModes>Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk</EngineModes> <EngineModes>Run all tests automatically:BFRydWU=;Run all tests manually:BUZhbHNl;Run impacted tests automatically, others manually (experimental!):CklzSW1wYWN0ZWQ=;Run pinned tests automatically, others manually:CElzUGlubmVk</EngineModes>
<MetricsExclusionList> <MetricsExclusionList>

Loading…
Cancel
Save