78 lines
2.6 KiB
C#
78 lines
2.6 KiB
C#
using JdeScoping.ExcelIO.Tests.Fixtures;
|
|
using NPOI.SS.UserModel;
|
|
using NPOI.XSSF.UserModel;
|
|
using Shouldly;
|
|
using Xunit;
|
|
|
|
namespace JdeScoping.ExcelIO.Tests.Integration;
|
|
|
|
public class ProtectionAndStyleTests : IClassFixture<WithMisDataFixture>
|
|
{
|
|
private readonly XSSFWorkbook _workbook;
|
|
|
|
public ProtectionAndStyleTests(WithMisDataFixture fixture)
|
|
{
|
|
_workbook = fixture.Workbook;
|
|
}
|
|
|
|
[Fact]
|
|
public void AllDataSheets_AreProtected()
|
|
{
|
|
((XSSFSheet)_workbook.GetSheet("Search Results")!).IsSheetLocked.ShouldBeTrue();
|
|
((XSSFSheet)_workbook.GetSheet("MIS Info")!).IsSheetLocked.ShouldBeTrue();
|
|
((XSSFSheet)_workbook.GetSheet("Investigation")!).IsSheetLocked.ShouldBeTrue();
|
|
}
|
|
|
|
[Fact]
|
|
public void Protection_AllowsFiltering()
|
|
{
|
|
var sheet = (XSSFSheet)_workbook.GetSheet("Search Results")!;
|
|
sheet.IsAutoFilterLocked.ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void Protection_AllowsSorting()
|
|
{
|
|
var sheet = (XSSFSheet)_workbook.GetSheet("Search Results")!;
|
|
sheet.IsSortLocked.ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void Protection_AllowsFormatting()
|
|
{
|
|
var sheet = (XSSFSheet)_workbook.GetSheet("Search Results")!;
|
|
sheet.IsFormatCellsLocked.ShouldBeFalse();
|
|
sheet.IsFormatColumnsLocked.ShouldBeFalse();
|
|
sheet.IsFormatRowsLocked.ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void AllTables_UseLight18Style()
|
|
{
|
|
ExcelTestHelpers.GetFirstTable(_workbook.GetSheet("Search Results")!).StyleName.ShouldBe("TableStyleLight18");
|
|
ExcelTestHelpers.GetFirstTable(_workbook.GetSheet("MIS Info")!).StyleName.ShouldBe("TableStyleLight18");
|
|
ExcelTestHelpers.GetFirstTable(_workbook.GetSheet("Investigation")!).StyleName.ShouldBe("TableStyleLight18");
|
|
}
|
|
|
|
[Fact]
|
|
public void HeaderCells_HaveCorrectFormatting()
|
|
{
|
|
var sheet = _workbook.GetSheet("Search Criteria")!;
|
|
var headerCell = ExcelTestHelpers.GetCell(sheet, 1, 1)!;
|
|
(headerCell.CellStyle.FontIndex >= 0 &&
|
|
_workbook.GetFontAt(headerCell.CellStyle.FontIndex).IsBold).ShouldBeTrue();
|
|
ExcelTestHelpers.GetFillForegroundRgb(headerCell).ShouldBe([0xDC, 0xDC, 0xDC]);
|
|
headerCell.CellStyle.Alignment.ShouldBe(HorizontalAlignment.Center);
|
|
}
|
|
|
|
[Fact]
|
|
public void CriteriaTimestamp_MatchesLegacyFormat()
|
|
{
|
|
var sheet = _workbook.GetSheet("Search Criteria")!;
|
|
var timestamp = ExcelTestHelpers.GetCellText(sheet, 4, 2);
|
|
timestamp.ShouldContain("Jan 15, 2024");
|
|
timestamp.ShouldContain("02:30:45");
|
|
timestamp.ShouldContain("EST");
|
|
}
|
|
}
|