82 lines
2.8 KiB
C#
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();
|
|
}
|
|
}
|