AquaSynth/tests/AquaSynth.Dsl.Tests/AgentInstrumentRegistryTests.cs
2026-08-21 21:18:45 +02:00

39 lines
1.1 KiB
C#

using AquaSynth.Dings;
using AquaSynthDingsMcp;
namespace AquaSynth.Dsl.Tests;
public sealed class AgentInstrumentRegistryTests
{
[Fact]
public void Automatic_assignment_is_stable_for_an_agent_session()
{
var registry = new AgentInstrumentRegistry();
var first = registry.GetOrAssign("agent-session-one");
var second = registry.GetOrAssign("agent-session-one");
Assert.Equal(first, second);
Assert.Contains(first, DingCatalog.Instruments.Keys);
}
[Fact]
public void Agent_can_claim_its_own_instrument()
{
var registry = new AgentInstrumentRegistry();
registry.GetOrAssign("agent-session-one");
var claimed = registry.Claim("agent-session-one", "glass-chime");
Assert.Equal("glass-chime", claimed);
Assert.Equal("glass-chime", registry.GetOrAssign("agent-session-one"));
}
[Fact]
public void Unknown_instrument_cannot_be_claimed()
{
var registry = new AgentInstrumentRegistry();
Assert.Throws<ArgumentException>(() => registry.Claim("agent-session-one", "kazoo-of-regret"));
}
}