From a06a6a0dff154b1a3e90f52da890db96c528e497 Mon Sep 17 00:00:00 2001 From: Cyberboss Date: Mon, 15 Oct 2018 11:13:12 -0400 Subject: [PATCH] Add TestAsyncDelayer --- .../Core/TestAsyncDelayer.cs | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/Tgstation.Server.Host.Tests/Core/TestAsyncDelayer.cs diff --git a/tests/Tgstation.Server.Host.Tests/Core/TestAsyncDelayer.cs b/tests/Tgstation.Server.Host.Tests/Core/TestAsyncDelayer.cs new file mode 100644 index 0000000000..c4927e3dee --- /dev/null +++ b/tests/Tgstation.Server.Host.Tests/Core/TestAsyncDelayer.cs @@ -0,0 +1,32 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace Tgstation.Server.Host.Core.Tests +{ + [TestClass] + public sealed class TestAsyncDelayer + { + [TestMethod] + public async Task TestDelay() + { + var delayer = new AsyncDelayer(); + var startDelay = delayer.Delay(TimeSpan.FromSeconds(1), default); + var checkDelay = Task.Delay(TimeSpan.FromSeconds(1) - TimeSpan.FromMilliseconds(10), default); + await startDelay.ConfigureAwait(false); + Assert.IsTrue(checkDelay.IsCompleted); + } + + [TestMethod] + public async Task TestCancel() + { + var delayer = new AsyncDelayer(); + using (var cts = new CancellationTokenSource()) + { + cts.Cancel(); + await Assert.ThrowsExceptionAsync(() => delayer.Delay(TimeSpan.FromSeconds(1), cts.Token)).ConfigureAwait(false); + } + } + } +}