Mit Roslyn umbenannt (Verweise folgen, Zeichenketten bleiben unberuehrt). Nicht umbenannt, weil gespeichert oder ueber die API gebunden (Stufe 4e): Properties, Record-Parameter, Enum-Member sowie die Parameter der Endpunkt-Handler (Routen-/Query-Bindung ueber den Namen). Die JSON-Felder anonymer Objekte bleiben ausdruecklich benannt (JsonFilter: pfad). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1.0 KiB
C#
28 lines
1.0 KiB
C#
using ClawdDotNet.Core.Tasks;
|
|
using Shouldly;
|
|
|
|
namespace ClawdDotNet.Core.Tests.Tasks;
|
|
|
|
/// <summary>
|
|
/// The assignee determines how a due task becomes a run (T7). The interpretation
|
|
/// must be unambiguous — whether an agent runs fresh or with context depends on it.
|
|
/// </summary>
|
|
public sealed class TaskAssigneeTests
|
|
{
|
|
[Theory]
|
|
[InlineData("@human", TaskAssigneeKind.Human)]
|
|
[InlineData("@new", TaskAssigneeKind.New)]
|
|
[InlineData("@new:crawler", TaskAssigneeKind.New)]
|
|
[InlineData("@crawler", TaskAssigneeKind.Agent)]
|
|
public void The_kind_is_recognised_correctly(string assignee, TaskAssigneeKind expected)
|
|
=> TaskAssignee.KindOf(assignee).ShouldBe(expected);
|
|
|
|
[Theory]
|
|
[InlineData("@crawler", "crawler")]
|
|
[InlineData("@new:crawler", "crawler")]
|
|
[InlineData("@new", "")] // fresh run without a named agent
|
|
[InlineData("@human", "")]
|
|
public void The_agent_id_is_extracted_correctly(string assignee, string expected)
|
|
=> TaskAssignee.AgentId(assignee).ShouldBe(expected);
|
|
}
|