diff options
| author | tanaka takashi <isazaka@gmail.com> | 2026-08-11 21:44:53 +0900 |
|---|---|---|
| committer | tanaka takashi <isazaka@gmail.com> | 2026-08-11 21:44:53 +0900 |
| commit | 6c3458a5ec37a5b69957ad17c84de58984698f25 (patch) | |
| tree | be5c5716e7488fcf1bc1a58de0ded0b9238f34cb /tests/Agent.Core.Tests/TaskRegistryTests.cs | |
| parent | b5ccecca01007f2a2459265df6d749fbfd31aa84 (diff) | |
Audit and align v1 runtime design
Diffstat (limited to 'tests/Agent.Core.Tests/TaskRegistryTests.cs')
| -rw-r--r-- | tests/Agent.Core.Tests/TaskRegistryTests.cs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/Agent.Core.Tests/TaskRegistryTests.cs b/tests/Agent.Core.Tests/TaskRegistryTests.cs index 28a2844..7e84dfd 100644 --- a/tests/Agent.Core.Tests/TaskRegistryTests.cs +++ b/tests/Agent.Core.Tests/TaskRegistryTests.cs @@ -18,6 +18,23 @@ public sealed class TaskRegistryTests } [Fact] + public async Task Running_cancel_is_terminal_only_after_runtime_cleanup_transition() + { + var registry = new TaskRegistry(); + TaskSnapshot task = registry.Enqueue("work", null, null); + Assert.True(registry.Transition(task.TaskId, AgentTaskState.Planning)); + Assert.True(registry.Transition(task.TaskId, AgentTaskState.Running)); + + Assert.True(registry.Cancel(task.TaskId)); + Assert.True(registry.GetCancellationToken(task.TaskId).IsCancellationRequested); + Task wait = registry.WaitForTerminalAsync(task.TaskId, CancellationToken.None); + Assert.False(wait.IsCompleted); + + Assert.True(registry.Transition(task.TaskId, AgentTaskState.Cancelled, result: "clean")); + Assert.Equal(AgentTaskState.Cancelled, (await registry.WaitForTerminalAsync(task.TaskId, TestContext.Current.CancellationToken)).State); + } + + [Fact] public void NewTaskGetsUniqueTaskAndSessionIds() { var registry = new TaskRegistry(); |
