Files
jdescopingtool/NEW/tests/JdeScoping.ExcelIO.Tests/HeaderFormatterTests.cs
T
2026-02-06 17:27:09 -05:00

82 lines
2.8 KiB
C#

using JdeScoping.ExcelIO.Formatting;
using JdeScoping.ExcelIO.Tests.Fixtures;
using NPOI.XSSF.UserModel;
using Shouldly;
using Xunit;
namespace JdeScoping.ExcelIO.Tests;
public class HeaderFormatterTests
{
[Fact]
public void ApplyHeaderFormat_Cell_AppliesCorrectStyling()
{
using var workbook = new XSSFWorkbook();
var worksheet = workbook.CreateSheet("Test");
var row = worksheet.CreateRow(0);
var cell = row.CreateCell(0);
HeaderFormatter.ApplyHeaderFormat(cell, "Test Header");
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Test Header");
cell.CellStyle.GetFont(workbook).IsBold.ShouldBeTrue();
cell.CellStyle.Alignment.ShouldBe(NPOI.SS.UserModel.HorizontalAlignment.Center);
ExcelTestHelpers.GetFillForegroundRgb(cell).ShouldBe([0xDC, 0xDC, 0xDC]);
}
[Fact]
public void ApplyHeaderFormat_Cell_WithoutText_AppliesOnlyStyling()
{
using var workbook = new XSSFWorkbook();
var worksheet = workbook.CreateSheet("Test");
var row = worksheet.CreateRow(0);
var cell = row.CreateCell(0);
cell.SetCellValue("Original");
HeaderFormatter.ApplyHeaderFormat(cell);
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Original");
cell.CellStyle.GetFont(workbook).IsBold.ShouldBeTrue();
}
[Fact]
public void ApplyHeaderFormat_Range_AppliesCorrectStyling()
{
using var workbook = new XSSFWorkbook();
var worksheet = workbook.CreateSheet("Test");
HeaderFormatter.ApplyHeaderFormat(worksheet, 1, 1, 1, 3, "Header", merge: false);
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Header");
for (var col = 1; col <= 3; col++)
{
var cell = ExcelTestHelpers.GetCell(worksheet, 1, col)!;
cell.CellStyle.GetFont(workbook).IsBold.ShouldBeTrue();
ExcelTestHelpers.GetFillForegroundRgb(cell).ShouldBe([0xDC, 0xDC, 0xDC]);
}
}
[Fact]
public void ApplyHeaderFormat_Range_WithMerge_MergesCells()
{
using var workbook = new XSSFWorkbook();
var worksheet = workbook.CreateSheet("Test");
HeaderFormatter.ApplyHeaderFormat(worksheet, 1, 1, 1, 3, "Merged Header", merge: true);
ExcelTestHelpers.IsMerged(worksheet, 1, 1, 1, 3).ShouldBeTrue();
ExcelTestHelpers.GetCellText(worksheet, 1, 1).ShouldBe("Merged Header");
}
[Fact]
public void ApplyHeaderFormat_Range_WithoutMerge_DoesNotMergeCells()
{
using var workbook = new XSSFWorkbook();
var worksheet = workbook.CreateSheet("Test");
HeaderFormatter.ApplyHeaderFormat(worksheet, 1, 1, 1, 3, "Not Merged", merge: false);
ExcelTestHelpers.IsMerged(worksheet, 1, 1, 1, 3).ShouldBeFalse();
}
}