From 16dc74c35d9420feec1334c112e1a93f063f054a Mon Sep 17 00:00:00 2001 From: AJ Isaacs Date: Wed, 18 Feb 2026 06:36:02 -0500 Subject: [PATCH] test: add FormProgramService tests Co-Authored-By: Claude Opus 4.6 --- FabWorks.Tests/FabWorks.Tests.csproj | 1 + FabWorks.Tests/FormProgramServiceTests.cs | 53 +++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 FabWorks.Tests/FormProgramServiceTests.cs diff --git a/FabWorks.Tests/FabWorks.Tests.csproj b/FabWorks.Tests/FabWorks.Tests.csproj index 354f1fb..12e226c 100644 --- a/FabWorks.Tests/FabWorks.Tests.csproj +++ b/FabWorks.Tests/FabWorks.Tests.csproj @@ -22,6 +22,7 @@ + diff --git a/FabWorks.Tests/FormProgramServiceTests.cs b/FabWorks.Tests/FormProgramServiceTests.cs new file mode 100644 index 0000000..146355c --- /dev/null +++ b/FabWorks.Tests/FormProgramServiceTests.cs @@ -0,0 +1,53 @@ +using FabWorks.Api.Services; +using Xunit; + +namespace FabWorks.Tests +{ + public class FormProgramServiceTests + { + [Fact] + public void ParseFromFile_SamplePgm_PopulatesMaterialType() + { + var service = new FormProgramService(); + var fp = service.ParseFromFile("TestData/sample.pgm"); + + // ProgName is empty in the sample file, so verify MaterialType instead + Assert.False(string.IsNullOrEmpty(fp.MaterialType)); + } + + [Fact] + public void ParseFromFile_SamplePgm_PopulatesThickness() + { + var service = new FormProgramService(); + var fp = service.ParseFromFile("TestData/sample.pgm"); + Assert.NotNull(fp.Thickness); + Assert.True(fp.Thickness > 0); + } + + [Fact] + public void ParseFromFile_SamplePgm_PopulatesBendCount() + { + var service = new FormProgramService(); + var fp = service.ParseFromFile("TestData/sample.pgm"); + Assert.True(fp.BendCount > 0); + } + + [Fact] + public void ParseFromFile_SamplePgm_PopulatesToolNames() + { + var service = new FormProgramService(); + var fp = service.ParseFromFile("TestData/sample.pgm"); + Assert.False(string.IsNullOrEmpty(fp.UpperToolNames)); + Assert.False(string.IsNullOrEmpty(fp.LowerToolNames)); + } + + [Fact] + public void ParseFromFile_SamplePgm_ComputesContentHash() + { + var service = new FormProgramService(); + var fp = service.ParseFromFile("TestData/sample.pgm"); + Assert.NotNull(fp.ContentHash); + Assert.Equal(64, fp.ContentHash.Length); // SHA256 hex = 64 chars + } + } +}