mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-24 22:35:39 -04:00
Moved source code under src folder - massive change
This commit is contained in:
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using FizzWare.NBuilder;
|
||||
using FluentAssertions;
|
||||
using NUnit.Framework;
|
||||
using NzbDrone.Core.Jobs;
|
||||
using NzbDrone.Core.Lifecycle;
|
||||
using NzbDrone.Core.Test.Framework;
|
||||
|
||||
namespace NzbDrone.Core.Test.JobTests
|
||||
{
|
||||
[TestFixture]
|
||||
public class JobRepositoryFixture : DbTest<JobRepository, JobDefinition>
|
||||
{
|
||||
FakeJob _fakeJob;
|
||||
DisabledJob _disabledJob;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
{
|
||||
_fakeJob = new FakeJob();
|
||||
_disabledJob = new DisabledJob();
|
||||
}
|
||||
|
||||
|
||||
private void Initialize()
|
||||
{
|
||||
Subject.Handle(new ApplicationStartedEvent());
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void Init_should_add_defintaions()
|
||||
{
|
||||
IEnumerable<IJob> baseFakeJobs = new List<IJob> { _fakeJob };
|
||||
Mocker.SetConstant(baseFakeJobs);
|
||||
|
||||
|
||||
Initialize();
|
||||
|
||||
Storage.All().Should().HaveCount(1);
|
||||
StoredModel.Interval.Should().Be((Int32)_fakeJob.DefaultInterval.TotalMinutes);
|
||||
StoredModel.Name.Should().Be(_fakeJob.Name);
|
||||
StoredModel.Name.Should().Be(_fakeJob.GetType().ToString());
|
||||
StoredModel.LastExecution.Should().HaveYear(DateTime.Now.Year);
|
||||
StoredModel.LastExecution.Should().HaveMonth(DateTime.Now.Month);
|
||||
StoredModel.LastExecution.Should().HaveDay(DateTime.Today.Day);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void inti_should_removed_jobs_that_no_longer_exist()
|
||||
{
|
||||
IEnumerable<IJob> fakeJobs = new List<IJob> { _fakeJob };
|
||||
Mocker.SetConstant(fakeJobs);
|
||||
|
||||
var deletedJob = Builder<JobDefinition>.CreateNew()
|
||||
.With(c => c.Id = 0)
|
||||
.Build();
|
||||
|
||||
Db.Insert(deletedJob);
|
||||
|
||||
//Make sure deleted job is stored
|
||||
AllStoredModels.Should().HaveCount(1);
|
||||
AllStoredModels.Should().Contain(c => c.Name == deletedJob.Name);
|
||||
|
||||
Initialize();
|
||||
|
||||
//Make sure init has cleaned up the deleted job
|
||||
AllStoredModels.Should().HaveCount(1);
|
||||
AllStoredModels.Should().NotContain(c => c.Name == deletedJob.Name);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void init_should_removed_jobs_that_no_longer_exist_even_with_same_name()
|
||||
{
|
||||
IEnumerable<IJob> fakeJobs = new List<IJob> { _fakeJob };
|
||||
Mocker.SetConstant(fakeJobs);
|
||||
|
||||
var deletedJob = Builder<JobDefinition>.CreateNew()
|
||||
.With(c => c.Name = _fakeJob.Name)
|
||||
.With(c => c.Id = 0)
|
||||
.Build();
|
||||
|
||||
Db.Insert(deletedJob);
|
||||
|
||||
//Make sure deleted job is stored
|
||||
AllStoredModels.Should().HaveCount(1);
|
||||
AllStoredModels.Should().Contain(c => c.Name == deletedJob.Name);
|
||||
|
||||
Initialize();
|
||||
|
||||
//Make sure init has cleaned up the deleted job
|
||||
AllStoredModels.Should().HaveCount(1);
|
||||
AllStoredModels.Should().NotContain(c => c.Name == deletedJob.Name);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void init_should_update_existing_job()
|
||||
{
|
||||
|
||||
var oldJob = Builder<JobDefinition>.CreateNew()
|
||||
.With(c => c.Id = 0)
|
||||
.With(c => c.Name = "OldName")
|
||||
.With(c => c.Name = typeof(FakeJob).ToString())
|
||||
.With(c => c.Interval = 0)
|
||||
.With(c => c.Success = true)
|
||||
.With(c => c.LastExecution = DateTime.Now.AddDays(-7).Date)
|
||||
.Build();
|
||||
|
||||
Storage.Insert(oldJob);
|
||||
|
||||
var newJob = new FakeJob();
|
||||
|
||||
IEnumerable<IJob> fakeJobs = new List<IJob> { newJob };
|
||||
Mocker.SetConstant(fakeJobs);
|
||||
|
||||
Initialize();
|
||||
|
||||
|
||||
AllStoredModels.Should().HaveCount(1);
|
||||
StoredModel.Name.Should().Be(newJob.GetType().FullName);
|
||||
StoredModel.Name.Should().Be(newJob.Name);
|
||||
StoredModel.Interval.Should().Be((int)newJob.DefaultInterval.TotalMinutes);
|
||||
StoredModel.Success.Should().Be(oldJob.Success);
|
||||
StoredModel.LastExecution.Should().Be(oldJob.LastExecution);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void pending_job_should_get_jobs_that_have_matured()
|
||||
{
|
||||
var oldJob = Builder<JobDefinition>.CreateNew()
|
||||
.With(c => c.Id = 0)
|
||||
.With(c => c.Interval = 1)
|
||||
.With(c => c.Success = true)
|
||||
.With(c => c.LastExecution = DateTime.Now.AddMinutes(-5))
|
||||
.Build();
|
||||
|
||||
|
||||
Storage.Insert(oldJob);
|
||||
|
||||
|
||||
Subject.GetPendingJobs().Should().HaveCount(1);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void pending_job_should_not_get_jobs_that_havent_matured()
|
||||
{
|
||||
var recent = Builder<JobDefinition>.CreateNew()
|
||||
.With(c => c.Id = 0)
|
||||
.With(c => c.Interval = 60)
|
||||
.With(c => c.Success = true)
|
||||
.With(c => c.LastExecution = DateTime.Now.AddMinutes(-5))
|
||||
.Build();
|
||||
|
||||
|
||||
Storage.Insert(recent);
|
||||
|
||||
|
||||
Subject.GetPendingJobs().Should().BeEmpty();
|
||||
}
|
||||
|
||||
/* [Test]
|
||||
public void disabled_jobs_arent_run_by_scheduler()
|
||||
{
|
||||
IEnumerable<IJob> BaseFakeJobs = new List<IJob> { disabledJob };
|
||||
Mocker.SetConstant(BaseFakeJobs);
|
||||
|
||||
var jobProvider = Mocker.Resolve<JobController>();
|
||||
jobProvider.QueueScheduled();
|
||||
|
||||
WaitForQueue();
|
||||
|
||||
|
||||
disabledJob.ExecutionCount.Should().Be(0);
|
||||
}#1#
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
||||
Reference in New Issue
Block a user