Nop.Core_4.7/Tests/Nop.Tests/Nop.Services.Tests/ScheduleTasks/TaskSchedulerTests.cs

53 lines
1.5 KiB
C#

using FluentAssertions;
using Nop.Core.Domain.ScheduleTasks;
using Nop.Data;
using Nop.Services.ScheduleTasks;
using NUnit.Framework;
namespace Nop.Tests.Nop.Services.Tests.ScheduleTasks;
[TestFixture]
public class TaskSchedulerTests : ServiceTest
{
private TestTaskScheduler _taskScheduler;
private IRepository<ScheduleTask> _scheduleTaskRepository;
[OneTimeSetUp]
public async Task SetUp()
{
_taskScheduler = GetService<ITaskScheduler>() as TestTaskScheduler;
_scheduleTaskRepository = GetService<IRepository<ScheduleTask>>();
var item = await _scheduleTaskRepository.GetByIdAsync(1);
item.LastStartUtc = DateTime.UtcNow.AddSeconds(-(item.Seconds + 1));
await _scheduleTaskRepository.UpdateAsync(item);
item = await _scheduleTaskRepository.GetByIdAsync(2);
item.LastStartUtc = DateTime.UtcNow.AddSeconds(item.Seconds - 1);
await _scheduleTaskRepository.UpdateAsync(item);
}
[OneTimeTearDown]
public void TearDown()
{
_taskScheduler.StopScheduler();
}
[Test]
public async Task CanInitialize()
{
_taskScheduler.IsInit.Should().BeFalse();
await _taskScheduler.InitializeAsync();
_taskScheduler.IsInit.Should().BeTrue();
}
[Test]
public void CanStartStopScheduler()
{
_taskScheduler.IsRun.Should().BeFalse();
_taskScheduler.StartScheduler();
_taskScheduler.IsRun.Should().BeTrue();
_taskScheduler.StopScheduler();
_taskScheduler.IsRun.Should().BeFalse();
}
}