Files
OpenNest/OpenNest.Engine.Tests/Jobs/EngineNameResolverTests.cs
T
ajandClaude Opus 5.5 170b517a28 refactor(engine): share engine-name classification across front ends
Console and Mcp each re-derived whether a name was a fill strategy, a
whole-job engine or unknown. EngineNameResolver now owns that decision,
trims consistently and accepts renamed legacy engine names; front ends
keep their own message wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 01:45:16 -04:00

44 lines
1.2 KiB
C#

using OpenNest.Engine.Jobs;
using Xunit;
namespace OpenNest.Engine.Tests.Jobs;
public class EngineNameResolverTests
{
[Theory]
[InlineData("Fill", "Fill")]
[InlineData(" strip ", "Strip")]
[InlineData("Default", "Fill")]
[InlineData(null, "Fill")]
[InlineData(" ", "Fill")]
public void FillStrategiesWinAndAreCanonicalized(string name, string expected)
{
var result = EngineNameResolver.Classify(name);
Assert.Equal(EngineNameKind.FillStrategy, result.Kind);
Assert.Equal(expected, result.FillStrategy);
}
[Theory]
[InlineData("StockLadder")]
[InlineData(" irregular ")]
[InlineData("Opus55NestingEngine")]
public void WholeJobEnginesAreRecognized(string name)
{
var result = EngineNameResolver.Classify(name);
Assert.Equal(EngineNameKind.JobEngine, result.Kind);
Assert.Null(result.FillStrategy);
Assert.Equal(name.Trim(), result.Name);
}
[Fact]
public void UnknownNamesAreUnknown()
{
var result = EngineNameResolver.Classify("Mystery Engine");
Assert.Equal(EngineNameKind.Unknown, result.Kind);
Assert.Null(result.FillStrategy);
}
}