mirror of
https://github.com/ajisaacs/OpenNest.git
synced 2026-10-27 18:31:08 -04:00
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>
44 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|