summaryrefslogtreecommitdiff
path: root/tests/Agent.Core.Tests/TaskRegistryTests.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Agent.Core.Tests/TaskRegistryTests.cs')
-rw-r--r--tests/Agent.Core.Tests/TaskRegistryTests.cs13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/Agent.Core.Tests/TaskRegistryTests.cs b/tests/Agent.Core.Tests/TaskRegistryTests.cs
index 33e16ab..28a2844 100644
--- a/tests/Agent.Core.Tests/TaskRegistryTests.cs
+++ b/tests/Agent.Core.Tests/TaskRegistryTests.cs
@@ -5,6 +5,19 @@ namespace Agent.Core.Tests;
public sealed class TaskRegistryTests
{
[Fact]
+ public async Task Explicit_task_id_can_be_cancelled_and_observed_as_terminal()
+ {
+ var registry = new TaskRegistry();
+ Guid taskId = Guid.NewGuid();
+ TaskSnapshot queued = registry.Enqueue("work", null, null, requestedTaskId: taskId);
+ Assert.Equal(taskId, queued.TaskId);
+ Assert.True(registry.Cancel(taskId));
+ TaskSnapshot terminal = await registry.WaitForTerminalAsync(taskId, TestContext.Current.CancellationToken);
+ Assert.Equal(AgentTaskState.Cancelled, terminal.State);
+ Assert.True(registry.GetCancellationToken(taskId).IsCancellationRequested);
+ }
+
+ [Fact]
public void NewTaskGetsUniqueTaskAndSessionIds()
{
var registry = new TaskRegistry();