Migrate ExcelIO from ClosedXML to NPOI
This commit is contained in:
@@ -1,80 +1,81 @@
|
||||
using ClosedXML.Excel;
|
||||
using JdeScoping.ExcelIO.Formatting;
|
||||
using Shouldly;
|
||||
using Xunit;
|
||||
|
||||
namespace JdeScoping.ExcelIO.Tests;
|
||||
|
||||
public class HeaderFormatterTests
|
||||
{
|
||||
[Fact]
|
||||
public void ApplyHeaderFormat_Cell_AppliesCorrectStyling()
|
||||
{
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add("Test");
|
||||
var cell = worksheet.Cell(1, 1);
|
||||
|
||||
HeaderFormatter.ApplyHeaderFormat(cell, "Test Header");
|
||||
|
||||
cell.Value.GetText().ShouldBe("Test Header");
|
||||
cell.Style.Font.Bold.ShouldBeTrue();
|
||||
cell.Style.Alignment.Horizontal.ShouldBe(XLAlignmentHorizontalValues.Center);
|
||||
cell.Style.Fill.BackgroundColor.ShouldBe(XLColor.Gainsboro);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ApplyHeaderFormat_Cell_WithoutText_AppliesOnlyStyling()
|
||||
{
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add("Test");
|
||||
var cell = worksheet.Cell(1, 1);
|
||||
cell.Value = "Original";
|
||||
|
||||
HeaderFormatter.ApplyHeaderFormat(cell);
|
||||
|
||||
cell.Value.GetText().ShouldBe("Original");
|
||||
cell.Style.Font.Bold.ShouldBeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ApplyHeaderFormat_Range_AppliesCorrectStyling()
|
||||
{
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add("Test");
|
||||
var range = worksheet.Range(1, 1, 1, 3);
|
||||
|
||||
HeaderFormatter.ApplyHeaderFormat(range, "Header", merge: false);
|
||||
|
||||
range.FirstCell().Value.GetText().ShouldBe("Header");
|
||||
foreach (var cell in range.Cells())
|
||||
{
|
||||
cell.Style.Font.Bold.ShouldBeTrue();
|
||||
cell.Style.Fill.BackgroundColor.ShouldBe(XLColor.Gainsboro);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ApplyHeaderFormat_Range_WithMerge_MergesCells()
|
||||
{
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add("Test");
|
||||
var range = worksheet.Range(1, 1, 1, 3);
|
||||
|
||||
HeaderFormatter.ApplyHeaderFormat(range, "Merged Header", merge: true);
|
||||
|
||||
range.IsMerged().ShouldBeTrue();
|
||||
range.FirstCell().Value.GetText().ShouldBe("Merged Header");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ApplyHeaderFormat_Range_WithoutMerge_DoesNotMergeCells()
|
||||
{
|
||||
using var workbook = new XLWorkbook();
|
||||
var worksheet = workbook.Worksheets.Add("Test");
|
||||
var range = worksheet.Range(1, 1, 1, 3);
|
||||
|
||||
HeaderFormatter.ApplyHeaderFormat(range, "Not Merged", merge: false);
|
||||
|
||||
range.IsMerged().ShouldBeFalse();
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user