From d130d3ca5e735cce75ab99b3ab18d5cdf88698a1 Mon Sep 17 00:00:00 2001 From: ngfrolov Date: Tue, 7 Nov 2023 15:34:05 +0500 Subject: [PATCH] Test Add Stop to WorkTest --- AsbCloudWebApi.Tests/Services/WorkTest.cs | 26 ++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/AsbCloudWebApi.Tests/Services/WorkTest.cs b/AsbCloudWebApi.Tests/Services/WorkTest.cs index ea826565..4f144d98 100644 --- a/AsbCloudWebApi.Tests/Services/WorkTest.cs +++ b/AsbCloudWebApi.Tests/Services/WorkTest.cs @@ -86,7 +86,6 @@ namespace AsbCloudWebApi.Tests.Services Assert.Equal(expectedProgress, currentState.Progress); } - [Fact] public async Task Work_fails_with_info() { @@ -122,5 +121,30 @@ namespace AsbCloudWebApi.Tests.Services Assert.Contains(expectedErrorText, error.ErrorText, StringComparison.InvariantCultureIgnoreCase); Assert.Equal(expectedState, error.State); } + + [Fact] + public async Task Stop() + { + var workTime = TimeSpan.FromMilliseconds(1_000); + + Task workAction(string id, IServiceProvider services, Action callback, CancellationToken token) + => Task.Delay(workTime, token); + + var work = Work.CreateByDelegate("", workAction); + + //act + var begin = DateTime.Now; + _ = work.Start(provider, CancellationToken.None); + await Task.Delay(10); + work.Stop(); + await Task.Delay(10); + + //assert + Assert.Equal(0, work.CountComplete); + Assert.Equal(1, work.CountStart); + Assert.Equal(0, work.CountErrors); + Assert.Null(work.LastComplete); + Assert.Null(work.LastError); + } } }