diff --git a/OpenNest.FrontEnd.Tests/ConsoleHost.cs b/OpenNest.FrontEnd.Tests/ConsoleHost.cs new file mode 100644 index 00000000..d6deebc8 --- /dev/null +++ b/OpenNest.FrontEnd.Tests/ConsoleHost.cs @@ -0,0 +1,15 @@ +using System.Reflection; + +namespace OpenNest.FrontEnd.Tests; + +/// Runs the console front end in-process. Import with using static. +internal static class ConsoleHost +{ + /// Calls NestConsole.Run and returns its exit code. + public static int RunConsole(params string[] args) + { + var method = Assembly.Load("OpenNest.Console").GetType("NestConsole")! + .GetMethod("Run", BindingFlags.Static | BindingFlags.Public)!; + return (int)method.Invoke(null, new object[] { args })!; + } +} diff --git a/OpenNest.FrontEnd.Tests/CuttingPlanFrontEndTests.cs b/OpenNest.FrontEnd.Tests/CuttingPlanFrontEndTests.cs index 3560c48c..903c9e86 100644 --- a/OpenNest.FrontEnd.Tests/CuttingPlanFrontEndTests.cs +++ b/OpenNest.FrontEnd.Tests/CuttingPlanFrontEndTests.cs @@ -5,6 +5,7 @@ using OpenNest.Geometry; using OpenNest.IO; using OpenNest.Mcp; using OpenNest.Mcp.Tools; +using static OpenNest.FrontEnd.Tests.ConsoleHost; namespace OpenNest.FrontEnd.Tests; @@ -171,13 +172,6 @@ public class CuttingPlanFrontEndTests : IDisposable Assert.False(part.HasManualLeadIns); } - private static int RunConsole(params string[] args) - { - var method = Assembly.Load("OpenNest.Console").GetType("NestConsole")! - .GetMethod("Run", BindingFlags.Static | BindingFlags.Public)!; - return (int)method.Invoke(null, new object[] { args })!; - } - private static Nest Fixture(Program program, params Vector[] locations) { var nest = new Nest("fixture"); diff --git a/OpenNest.FrontEnd.Tests/NestingPipelineTests.cs b/OpenNest.FrontEnd.Tests/NestingPipelineTests.cs index b6015588..953a768c 100644 --- a/OpenNest.FrontEnd.Tests/NestingPipelineTests.cs +++ b/OpenNest.FrontEnd.Tests/NestingPipelineTests.cs @@ -6,6 +6,7 @@ using OpenNest.Geometry; using OpenNest.IO; using OpenNest.Mcp; using OpenNest.Mcp.Tools; +using static OpenNest.FrontEnd.Tests.ConsoleHost; namespace OpenNest.FrontEnd.Tests; @@ -75,13 +76,6 @@ public class NestingPipelineTests : IDisposable new[] { new StockUsage(job.Plates[0].Id, 999, 0) }); } - private static int RunConsole(params string[] args) - { - var method = Assembly.Load("OpenNest.Console").GetType("NestConsole")! - .GetMethod("Run", BindingFlags.Static | BindingFlags.Public)!; - return (int)method.Invoke(null, new object[] { args })!; - } - [Theory] [InlineData("overlap", false, 2)] [InlineData("overlap", true, 0)] diff --git a/OpenNest.FrontEnd.Tests/RegexImportFailureTests.cs b/OpenNest.FrontEnd.Tests/RegexImportFailureTests.cs index 38c44051..00933772 100644 --- a/OpenNest.FrontEnd.Tests/RegexImportFailureTests.cs +++ b/OpenNest.FrontEnd.Tests/RegexImportFailureTests.cs @@ -11,6 +11,7 @@ using OpenNest.Geometry; using OpenNest.IO.Bending; using OpenNest.Mcp; using OpenNest.Mcp.Tools; +using static OpenNest.FrontEnd.Tests.ConsoleHost; using CadLayer = ACadSharp.Tables.Layer; using CadLine = ACadSharp.Entities.Line; @@ -136,13 +137,6 @@ public class RegexImportFailureTests : IDisposable Assert.Equal(hash, Hash(bad)); } - private static int RunConsole(params string[] args) - { - var method = Assembly.Load("OpenNest.Console").GetType("NestConsole")! - .GetMethod("Run", BindingFlags.Static | BindingFlags.Public)!; - return (int)method.Invoke(null, new object[] { args })!; - } - private string WriteDxf(string name, bool marker) { var document = new CadDocument();