81 lines
2.5 KiB
C#
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);
|
|
}
|
|
}
|