From ca6c92c508e26b4087829ee9e04b51d67a30e926 Mon Sep 17 00:00:00 2001 From: jmd Date: Tue, 6 Feb 2024 11:14:59 +0100 Subject: [PATCH] small refactorings. --- ...eworkClassTest.cs => ScheduledTaskTest.cs} | 22 ------------------- src/DotJEM.Web.Scheduler.Test/TaskExt.cs | 15 +++++++++++++ .../WebTaskSchedulerTest.cs | 21 ++++++++++++++++++ src/DotJEM.Web.Scheduler/IScheduledTask.cs | 2 +- src/DotJEM.Web.Scheduler/ScheduledTask.cs | 8 ++++--- 5 files changed, 42 insertions(+), 26 deletions(-) rename src/DotJEM.Web.Scheduler.Test/{MyFrameworkClassTest.cs => ScheduledTaskTest.cs} (79%) create mode 100644 src/DotJEM.Web.Scheduler.Test/TaskExt.cs create mode 100644 src/DotJEM.Web.Scheduler.Test/WebTaskSchedulerTest.cs diff --git a/src/DotJEM.Web.Scheduler.Test/MyFrameworkClassTest.cs b/src/DotJEM.Web.Scheduler.Test/ScheduledTaskTest.cs similarity index 79% rename from src/DotJEM.Web.Scheduler.Test/MyFrameworkClassTest.cs rename to src/DotJEM.Web.Scheduler.Test/ScheduledTaskTest.cs index 22ebc34..b5271e4 100644 --- a/src/DotJEM.Web.Scheduler.Test/MyFrameworkClassTest.cs +++ b/src/DotJEM.Web.Scheduler.Test/ScheduledTaskTest.cs @@ -5,15 +5,6 @@ namespace DotJEM.Web.Scheduler.Test; -public class WebTaskSchedulerTest -{ - [Test] - public void SayHello_ReturnsHello() - { - - } -} - public class ScheduledTaskTest { [Test] @@ -62,17 +53,4 @@ await Task.WhenAll( Assert.That(executed, Is.EqualTo(1)); } -} -internal static class TaskExt -{ - public static void FireAndForget(this Task task) - { - - } - public static Func ToAsync(this Action action) - { -#pragma warning disable CS1998 - return async arg => action(arg); -#pragma warning restore CS1998 - } } \ No newline at end of file diff --git a/src/DotJEM.Web.Scheduler.Test/TaskExt.cs b/src/DotJEM.Web.Scheduler.Test/TaskExt.cs new file mode 100644 index 0000000..9a7a5be --- /dev/null +++ b/src/DotJEM.Web.Scheduler.Test/TaskExt.cs @@ -0,0 +1,15 @@ +namespace DotJEM.Web.Scheduler.Test; + +internal static class TaskExt +{ + public static void FireAndForget(this Task task) + { + + } + public static Func ToAsync(this Action action) + { +#pragma warning disable CS1998 + return async arg => action(arg); +#pragma warning restore CS1998 + } +} \ No newline at end of file diff --git a/src/DotJEM.Web.Scheduler.Test/WebTaskSchedulerTest.cs b/src/DotJEM.Web.Scheduler.Test/WebTaskSchedulerTest.cs new file mode 100644 index 0000000..0fce3f4 --- /dev/null +++ b/src/DotJEM.Web.Scheduler.Test/WebTaskSchedulerTest.cs @@ -0,0 +1,21 @@ +using NUnit.Framework; + +namespace DotJEM.Web.Scheduler.Test; + +public class WebTaskSchedulerTest +{ + [Test] + public async Task SayHello_ReturnsHello() + { + WebTaskScheduler scheduler = new WebTaskScheduler(); + IScheduledTask? task = null; + bool called = false; + task = scheduler.ScheduleTask("Foo", timedOut => { called = true; }, TimeSpan.FromMilliseconds(500)); + await Task.WhenAny(task.WhenCompleted(), Task.Delay(TimeSpan.FromSeconds(1))); + task.Dispose(); + + + Assert.IsTrue(called); + + } +} \ No newline at end of file diff --git a/src/DotJEM.Web.Scheduler/IScheduledTask.cs b/src/DotJEM.Web.Scheduler/IScheduledTask.cs index 83e5f7e..dc1eb2f 100644 --- a/src/DotJEM.Web.Scheduler/IScheduledTask.cs +++ b/src/DotJEM.Web.Scheduler/IScheduledTask.cs @@ -71,5 +71,5 @@ public interface IScheduledTask : IDisposable /// /// /// - TaskAwaiter GetAwaiter(); + Task WhenCompleted(); } \ No newline at end of file diff --git a/src/DotJEM.Web.Scheduler/ScheduledTask.cs b/src/DotJEM.Web.Scheduler/ScheduledTask.cs index ad768e6..7c3ff52 100644 --- a/src/DotJEM.Web.Scheduler/ScheduledTask.cs +++ b/src/DotJEM.Web.Scheduler/ScheduledTask.cs @@ -94,9 +94,11 @@ public void Start() } } - /// Gets an awaiter used to await this , the task is signaled when the task runs to completion and is disposed. - /// An awaiter instance. - public TaskAwaiter GetAwaiter() => completeCompletionSource.Task.GetAwaiter(); + /// + /// + /// + /// + public Task WhenCompleted() => completeCompletionSource.Task; /// /// Registers the next call for the scheduled task onto the threadpool.