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