using SharepointToolbox.Core.Helpers; namespace SharepointToolbox.Tests.Helpers; [Trait("Category", "Unit")] public class SharePointPaginationHelperTests { [Fact] public void BuildPagedViewXml_NullInput_ReturnsViewWithRowLimit() { var result = SharePointPaginationHelper.BuildPagedViewXml(null, 2000); Assert.Equal("2000", result); } [Fact] public void BuildPagedViewXml_EmptyString_ReturnsViewWithRowLimit() { var result = SharePointPaginationHelper.BuildPagedViewXml("", 2000); Assert.Equal("2000", result); } [Fact] public void BuildPagedViewXml_WhitespaceOnly_ReturnsViewWithRowLimit() { var result = SharePointPaginationHelper.BuildPagedViewXml(" ", 2000); Assert.Equal("2000", result); } [Fact] public void BuildPagedViewXml_ExistingRowLimit_Replaces() { var input = "100"; var result = SharePointPaginationHelper.BuildPagedViewXml(input, 2000); Assert.Equal("2000", result); } [Fact] public void BuildPagedViewXml_NoRowLimit_AppendsBeforeClosingView() { var input = ""; var result = SharePointPaginationHelper.BuildPagedViewXml(input, 2000); Assert.Contains("2000", result); Assert.EndsWith("", result); // Ensure RowLimit is inserted before the closing var rowLimitIndex = result.IndexOf("2000", StringComparison.Ordinal); var closingViewIndex = result.LastIndexOf("", StringComparison.Ordinal); Assert.True(rowLimitIndex < closingViewIndex, "RowLimit should appear before "); } }