From c9bfabbd2b2004aa065326af6352d9f64fbb71c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Ros?= Date: Fri, 19 Nov 2010 08:45:07 -0800 Subject: [PATCH] Correcting ScheduledTaskManager.GetTasks(string, DateTime?) implementation Work Item: 16719 --HG-- branch : dev --- .../Scheduling/ScheduledTaskManagerTests.cs | 35 +++++++++++++++++++ .../Services/ScheduledTaskManager.cs | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Core.Tests/Scheduling/ScheduledTaskManagerTests.cs b/src/Orchard.Core.Tests/Scheduling/ScheduledTaskManagerTests.cs index ef2fdf56b..577fab442 100644 --- a/src/Orchard.Core.Tests/Scheduling/ScheduledTaskManagerTests.cs +++ b/src/Orchard.Core.Tests/Scheduling/ScheduledTaskManagerTests.cs @@ -124,5 +124,40 @@ namespace Orchard.Core.Tests.Scheduling { var secondTask = tasks.Single(x => x.TaskType == "Second"); Assert.That(secondTask.ContentItem.Version, Is.EqualTo(2)); } + + [Test] + public void ShouldGetTasksByType() { + _scheduledTaskManager.CreateTask("First", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("First", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("First", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("Second", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("Second", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("Third", _clock.UtcNow, null); + + _session.Flush(); + _session.Clear(); + + Assert.That(_scheduledTaskManager.GetTasks("First").Count(), Is.EqualTo(3)); + Assert.That(_scheduledTaskManager.GetTasks("Second").Count(), Is.EqualTo(2)); + Assert.That(_scheduledTaskManager.GetTasks("Third").Count(), Is.EqualTo(1)); + Assert.That(_scheduledTaskManager.GetTasks("Fourth").Count(), Is.EqualTo(0)); + } + + [Test] + public void ShouldGetTasksByTypeAndScheduledDate() { + _scheduledTaskManager.CreateTask("First", _clock.UtcNow, null); + _scheduledTaskManager.CreateTask("First", _clock.UtcNow.AddHours(1), null); + _scheduledTaskManager.CreateTask("First", _clock.UtcNow.AddHours(2), null); + + _session.Flush(); + _session.Clear(); + + Assert.That(_scheduledTaskManager.GetTasks("Foo", _clock.UtcNow.AddHours(5)).Count(), Is.EqualTo(0)); + + Assert.That(_scheduledTaskManager.GetTasks("First", _clock.UtcNow.AddMinutes(-1)).Count(), Is.EqualTo(0)); + Assert.That(_scheduledTaskManager.GetTasks("First", _clock.UtcNow.AddMinutes(1)).Count(), Is.EqualTo(1)); + Assert.That(_scheduledTaskManager.GetTasks("First", _clock.UtcNow.AddHours(1)).Count(), Is.EqualTo(2)); + Assert.That(_scheduledTaskManager.GetTasks("First", _clock.UtcNow.AddHours(2)).Count(), Is.EqualTo(3)); + } } } diff --git a/src/Orchard.Web/Core/Scheduling/Services/ScheduledTaskManager.cs b/src/Orchard.Web/Core/Scheduling/Services/ScheduledTaskManager.cs index 7d818c282..e8f05bde7 100644 --- a/src/Orchard.Web/Core/Scheduling/Services/ScheduledTaskManager.cs +++ b/src/Orchard.Web/Core/Scheduling/Services/ScheduledTaskManager.cs @@ -45,7 +45,7 @@ namespace Orchard.Core.Scheduling.Services { } public IEnumerable GetTasks(string taskType, DateTime? scheduledBeforeUtc = null) { - var query = scheduledBeforeUtc == null + var query = scheduledBeforeUtc != null ? _repository.Fetch(t => t.TaskType == taskType && t.ScheduledUtc <= scheduledBeforeUtc) : _repository.Fetch(t => t.TaskType == taskType);