Fixed job provider issue where deleted job classes would break scheduler.

This commit is contained in:
kay.one 2011-12-01 22:26:06 -08:00
commit bb460163c2
2 changed files with 44 additions and 45 deletions

View file

@ -4,11 +4,13 @@ using System.Linq;
using System;
using System.Collections.Generic;
using System.Threading;
using FizzWare.NBuilder;
using FluentAssertions;
using NUnit.Framework;
using NzbDrone.Core.Jobs;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Jobs;
using NzbDrone.Core.Repository;
using NzbDrone.Core.Test.Framework;
using NzbDrone.Test.Common;
using NzbDrone.Test.Common.AutoMoq;
@ -283,6 +285,27 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
timers[0].Enable.Should().BeTrue();
}
[Test]
public void inti_should_removed_jobs_that_no_longer_exist()
{
IList<IJob> fakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(fakeJobs);
WithRealDb();
var deletedJob = Builder<JobDefinition>.CreateNew().Build();
Db.Insert(deletedJob);
var jobProvider = Mocker.Resolve<JobProvider>();
//Act
jobProvider.Initialize();
//Assert
var registeredJobs = Db.Fetch<JobDefinition>();
registeredJobs.Should().HaveCount(1);
registeredJobs.Should().NotContain(c => c.Name == deletedJob.Name);
}
[Test]
public void jobs_with_zero_interval_are_registered_as_disabled()
{
@ -297,24 +320,6 @@ namespace NzbDrone.Core.Test.ProviderTests.JobProviderTests
jobProvider.All().First().Enable.Should().BeFalse();
}
[Test]
public void Get_Next_Execution_Time()
{
IList<IJob> BaseFakeJobs = new List<IJob> { fakeJob };
Mocker.SetConstant(BaseFakeJobs);
//Act
var jobProvider = Mocker.Resolve<JobProvider>();
jobProvider.Initialize();
jobProvider.QueueScheduled();
WaitForQueue();
//Assert
var next = jobProvider.NextScheduledRun(typeof(FakeJob));
jobProvider.All().Should().HaveCount(1);
jobProvider.All().First().LastExecution.Should().Be(next.AddMinutes(-fakeJob.DefaultInterval));
}
[Test]
public void disabled_jobs_arent_run_by_scheduler()
{