Files
2026-02-06 17:27:09 -05:00

81 lines
2.5 KiB
C#

using JdeScoping.ExcelIO.Templates;
using JdeScoping.ExcelIO.Tests.Fixtures;
using Shouldly;
using Xunit;
namespace JdeScoping.ExcelIO.Tests.Templates;
public class ExcelTemplateServiceTests
{
private readonly ExcelTemplateService _service = new();
[Fact]
public void GenerateSingleColumn_CreatesValidExcel()
{
var data = new[] { 12345L, 67890L };
var result = _service.GenerateSingleColumn(data, "Work Order Number");
result.ShouldNotBeNull();
result.Length.ShouldBeGreaterThan(0);
using var workbook = ExcelTestHelpers.OpenWorkbook(result);
var worksheet = workbook.GetSheetAt(0);
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Work Order Number");
ExcelTestHelpers.GetCellText(worksheet, 2, 1).ShouldBe("12345");
ExcelTestHelpers.GetCellText(worksheet, 3, 1).ShouldBe("67890");
}
[Fact]
public void GenerateMultiColumn_CreatesValidExcel()
{
var data = new[]
{
new object?[] { "ITEM-001", "Description 1" },
new object?[] { "ITEM-002", "Description 2" }
};
var headers = new[] { "Item Number", "Description" };
var result = _service.GenerateMultiColumn(data, headers);
result.ShouldNotBeNull();
result.Length.ShouldBeGreaterThan(0);
using var workbook = ExcelTestHelpers.OpenWorkbook(result);
var worksheet = workbook.GetSheetAt(0);
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Item Number");
ExcelTestHelpers.GetCellText(worksheet, 1, 2).ShouldBe("Description");
ExcelTestHelpers.GetCellText(worksheet, 2, 1).ShouldBe("ITEM-001");
ExcelTestHelpers.GetCellText(worksheet, 2, 2).ShouldBe("Description 1");
}
[Fact]
public void GenerateSingleColumn_HandlesEmptyData()
{
var result = _service.GenerateSingleColumn(Array.Empty<string>(), "Header");
result.ShouldNotBeNull();
result.Length.ShouldBeGreaterThan(0);
}
[Fact]
public void GenerateMultiColumn_HandlesNullValues()
{
var data = new[]
{
new object?[] { "ITEM-001", null }
};
var headers = new[] { "Item", "Value" };
var result = _service.GenerateMultiColumn(data, headers);
result.ShouldNotBeNull();
using var workbook = ExcelTestHelpers.OpenWorkbook(result);
var worksheet = workbook.GetSheetAt(0);
ExcelTestHelpers.GetCellText(worksheet, 2, 2).ShouldBe(string.Empty);
}
}