using JdeScoping.ExcelIO.Tests.Fixtures; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using Shouldly; using Xunit; namespace JdeScoping.ExcelIO.Tests.Integration; public class InvestigationSheetTests : IClassFixture { private readonly XSSFWorkbook _workbook; private readonly ISheet _sheet; private readonly List _headers; public InvestigationSheetTests(WithMisDataFixture fixture) { _workbook = fixture.Workbook; _sheet = _workbook.GetSheet("Investigation")!; _headers = ExcelTestHelpers.GetHeadersFromSheet(_sheet); } [Fact] public void InvestigationSheet_Exists() { _workbook.GetSheet("Investigation").ShouldNotBeNull(); } [Fact] public void ColumnCount_Is12() { _headers.Count.ShouldBe(12); } [Fact] public void ColumnHeaders_MatchExpected() { _headers.ShouldContain("Work Center Code"); _headers.ShouldContain("Work Order Number"); _headers.ShouldContain("Work Order Start Date"); _headers.ShouldContain("Job Step Number"); _headers.ShouldContain("Function Operation Description"); _headers.ShouldContain("Job Step End Date"); _headers.ShouldContain("Function Code"); _headers.ShouldContain("Was Job Step Added?"); _headers.ShouldContain("Matched Job Step Number"); _headers.ShouldContain("Item Number"); _headers.ShouldContain("Item Description"); _headers.ShouldContain("Routing Type"); } [Fact] public void ColumnOrder_MatchesSpec() { _headers[0].ShouldBe("Work Center Code"); _headers[1].ShouldBe("Work Order Number"); _headers[2].ShouldBe("Work Order Start Date"); _headers[3].ShouldBe("Job Step Number"); _headers[4].ShouldBe("Function Operation Description"); _headers[5].ShouldBe("Job Step End Date"); _headers[6].ShouldBe("Function Code"); _headers[7].ShouldBe("Was Job Step Added?"); _headers[8].ShouldBe("Matched Job Step Number"); _headers[9].ShouldBe("Item Number"); _headers[10].ShouldBe("Item Description"); _headers[11].ShouldBe("Routing Type"); } [Fact] public void TableStyle_IsLight18() { var table = ExcelTestHelpers.GetFirstTable(_sheet); table.StyleName.ShouldBe("TableStyleLight18"); } [Fact] public void Protection_IsEnabled() { ((XSSFSheet)_sheet).IsSheetLocked.ShouldBeTrue(); } [Fact] public void DataRow_ContainsExpectedValues() { ExcelTestHelpers.GetCellNumber(_sheet, 2, 2).ShouldBe(12345); ExcelTestHelpers.GetCellText(_sheet, 2, 10).ShouldBe("ITEM-001"); } }