- Add StorageCsvExportService, StorageHtmlExportService stub (Plan 03-03) - Add SearchCsvExportService, SearchHtmlExportService stub (Plan 03-05) - Add DuplicatesHtmlExportService stub (Plan 03-05) - Add StorageServiceTests, SearchServiceTests, DuplicatesServiceTests scaffolds - Add export test scaffolds for all 4 Phase 3 export services - 7 pure-logic tests pass (VersionSizeBytes + MakeKey); 4 CSOM stubs skip
54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
using SharepointToolbox.Core.Models;
|
|
using SharepointToolbox.Services.Export;
|
|
using Xunit;
|
|
|
|
namespace SharepointToolbox.Tests.Services.Export;
|
|
|
|
public class DuplicatesHtmlExportServiceTests
|
|
{
|
|
private static DuplicateGroup MakeGroup(string name, int count) => new()
|
|
{
|
|
GroupKey = $"{name}|1024",
|
|
Name = name,
|
|
Items = Enumerable.Range(1, count).Select(i => new DuplicateItem
|
|
{
|
|
Name = name,
|
|
Path = $"https://contoso.sharepoint.com/sites/Site{i}/{name}",
|
|
Library = "Shared Documents",
|
|
SizeBytes = 1024
|
|
}).ToList()
|
|
};
|
|
|
|
[Fact]
|
|
public void BuildHtml_WithGroups_ContainsGroupCards()
|
|
{
|
|
var svc = new DuplicatesHtmlExportService();
|
|
var groups = new List<DuplicateGroup> { MakeGroup("report.docx", 3) };
|
|
var html = svc.BuildHtml(groups);
|
|
Assert.Contains("<!DOCTYPE html>", html);
|
|
Assert.Contains("report.docx", html);
|
|
}
|
|
|
|
[Fact]
|
|
public void BuildHtml_WithMultipleGroups_AllGroupNamesPresent()
|
|
{
|
|
var svc = new DuplicatesHtmlExportService();
|
|
var groups = new List<DuplicateGroup>
|
|
{
|
|
MakeGroup("budget.xlsx", 2),
|
|
MakeGroup("photo.jpg", 4)
|
|
};
|
|
var html = svc.BuildHtml(groups);
|
|
Assert.Contains("budget.xlsx", html);
|
|
Assert.Contains("photo.jpg", html);
|
|
}
|
|
|
|
[Fact]
|
|
public void BuildHtml_WithEmptyList_ReturnsValidHtml()
|
|
{
|
|
var svc = new DuplicatesHtmlExportService();
|
|
var html = svc.BuildHtml(new List<DuplicateGroup>());
|
|
Assert.Contains("<!DOCTYPE html>", html);
|
|
}
|
|
}
|