| 03-storage |
01 |
testing |
| csharp |
| xunit |
| moq |
| interfaces |
| models |
| storage |
| search |
| duplicates |
|
| phase |
provides |
| 02-permissions |
Phase 2 export service pattern, test scaffold pattern with Wave 0 stubs |
|
|
| 7 core data models (StorageNode, StorageScanOptions, SearchResult, SearchOptions, DuplicateItem, DuplicateGroup, DuplicateScanOptions) |
| 3 service interfaces (IStorageService, ISearchService, IDuplicatesService) enabling Moq-based unit tests |
| 5 export service stubs (StorageCsvExportService, StorageHtmlExportService, SearchCsvExportService, SearchHtmlExportService, DuplicatesHtmlExportService) — compile-only skeletons |
| 7 test scaffold files — 7 pure-logic tests pass, 15 export tests fail as expected (stubs), 4 CSOM tests skip |
|
| 03-02 |
| 03-03 |
| 03-04 |
| 03-05 |
| 03-06 |
| 03-07 |
| 03-08 |
|
| added |
patterns |
|
|
| Wave 0 scaffold pattern — models + interfaces + stubs first, implementation in subsequent plans |
| Inline pure-logic test helper (MakeKey) — tests composite-key logic before service class exists |
| StorageNode.VersionSizeBytes as derived property (Math.Max(0, Total - FileStream)) — never negative |
|
|
| created |
modified |
| SharepointToolbox/Core/Models/StorageNode.cs |
| SharepointToolbox/Core/Models/StorageScanOptions.cs |
| SharepointToolbox/Core/Models/SearchResult.cs |
| SharepointToolbox/Core/Models/SearchOptions.cs |
| SharepointToolbox/Core/Models/DuplicateItem.cs |
| SharepointToolbox/Core/Models/DuplicateGroup.cs |
| SharepointToolbox/Core/Models/DuplicateScanOptions.cs |
| SharepointToolbox/Services/IStorageService.cs |
| SharepointToolbox/Services/ISearchService.cs |
| SharepointToolbox/Services/IDuplicatesService.cs |
| SharepointToolbox/Services/Export/StorageCsvExportService.cs |
| SharepointToolbox/Services/Export/StorageHtmlExportService.cs |
| SharepointToolbox/Services/Export/SearchCsvExportService.cs |
| SharepointToolbox/Services/Export/SearchHtmlExportService.cs |
| SharepointToolbox/Services/Export/DuplicatesHtmlExportService.cs |
| SharepointToolbox.Tests/Services/StorageServiceTests.cs |
| SharepointToolbox.Tests/Services/SearchServiceTests.cs |
| SharepointToolbox.Tests/Services/DuplicatesServiceTests.cs |
| SharepointToolbox.Tests/Services/Export/StorageCsvExportServiceTests.cs |
| SharepointToolbox.Tests/Services/Export/StorageHtmlExportServiceTests.cs |
| SharepointToolbox.Tests/Services/Export/SearchExportServiceTests.cs |
| SharepointToolbox.Tests/Services/Export/DuplicatesHtmlExportServiceTests.cs |
|
|
|
| StorageNode.VersionSizeBytes is a derived property (Math.Max(0, TotalSizeBytes - FileStreamSizeBytes)) — not stored separately |
| MakeKey composite key logic tested inline in DuplicatesServiceTests before Plan 03-04 creates the real class |
| Export service stubs return string.Empty — compile-only skeletons until Plans 03-03 and 03-05 implement real logic |
|
| Wave 0 scaffold pattern: models + interfaces + export stubs created first; all subsequent plans have dotnet test --filter targets from day 1 |
| Pure-logic tests with inline helpers: test deterministic functions (MakeKey, VersionSizeBytes) before service classes exist |
|
| STOR-01 |
| STOR-02 |
| STOR-03 |
| STOR-04 |
| STOR-05 |
| SRCH-01 |
| SRCH-02 |
| SRCH-03 |
| SRCH-04 |
| DUPL-01 |
| DUPL-02 |
| DUPL-03 |
|
10min |
2026-04-02 |