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

79 lines
2.5 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 WorksheetProtectorTests
{
[Fact]
public void ApplyProtection_ProtectsWorksheet()
{
using var workbook = new XSSFWorkbook();
var worksheet = (XSSFSheet)workbook.CreateSheet("Test");
WorksheetProtector.ApplyProtection(worksheet, "TestPassword");
worksheet.IsSheetLocked.ShouldBeTrue();
}
[Fact]
public void ApplyProtection_AllowsSpecifiedOperations()
{
using var workbook = new XSSFWorkbook();
var worksheet = (XSSFSheet)workbook.CreateSheet("Test");
WorksheetProtector.ApplyProtection(worksheet, "TestPassword");
worksheet.IsDeleteColumnsLocked.ShouldBeFalse();
worksheet.IsDeleteRowsLocked.ShouldBeFalse();
worksheet.IsAutoFilterLocked.ShouldBeFalse();
worksheet.IsFormatCellsLocked.ShouldBeFalse();
worksheet.IsFormatColumnsLocked.ShouldBeFalse();
worksheet.IsFormatRowsLocked.ShouldBeFalse();
worksheet.IsSelectLockedCellsLocked.ShouldBeFalse();
worksheet.IsSelectUnlockedCellsLocked.ShouldBeFalse();
worksheet.IsObjectsLocked.ShouldBeFalse();
worksheet.IsSortLocked.ShouldBeFalse();
}
[Fact]
public void ApplyProtection_AllowsDeleteRows()
{
using var workbook = new XSSFWorkbook();
var worksheet = (XSSFSheet)workbook.CreateSheet("Test");
WorksheetProtector.ApplyProtection(worksheet, "TestPassword");
worksheet.IsDeleteRowsLocked.ShouldBeFalse();
}
[Fact]
public void ApplyCriteriaProtection_ProtectsWorksheet()
{
using var workbook = new XSSFWorkbook();
var worksheet = (XSSFSheet)workbook.CreateSheet("Test");
WorksheetProtector.ApplyCriteriaProtection(worksheet, "CriteriaPassword");
worksheet.IsSheetLocked.ShouldBeTrue();
}
[Fact]
public void UnlockExtensionArea_UnlocksSpecifiedRange()
{
using var workbook = new XSSFWorkbook();
var worksheet = (XSSFSheet)workbook.CreateSheet("Test");
WorksheetProtector.UnlockExtensionArea(worksheet, 10, 5, 100, 100);
var extensionStyle = worksheet.GetColumnStyle(5);
extensionStyle.IsLocked.ShouldBeFalse();
var extensionCell = ExcelTestHelpers.GetCell(worksheet, 1, 6)!;
extensionCell.CellStyle.IsLocked.ShouldBeFalse();
}
}