refactor(ExcelIO): delete old attribute-based infrastructure
- Remove OutputColumnAttribute, OutputTableAttribute, OutputColumnCache - Remove AttributeTableWriter and ColumnFormatter - Remove duplicate ExcelFormats from Mapping (use Formatting version) - Remove OutputColumn model - Add FilterEntryMaps for criteria sheet filter models - Update CriteriaSheetGenerator to use FluentTableWriter - Remove attributes from filter entry models (now use fluent maps) - Update DI to register filter entry maps and remove old services - Update tests to use new fluent infrastructure - Delete obsolete test files for removed infrastructure Task 16 of fluent-excel-mapping-implementation plan.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
using ClosedXML.Excel;
|
||||
using JdeScoping.ExcelIO.Options;
|
||||
using JdeScoping.ExcelIO.Generators;
|
||||
using JdeScoping.ExcelIO.Helpers;
|
||||
using JdeScoping.ExcelIO.Mapping;
|
||||
using JdeScoping.ExcelIO.Mapping.Maps;
|
||||
using JdeScoping.ExcelIO.Models.Reporting;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
@@ -9,6 +10,10 @@ using NSubstitute;
|
||||
using Shouldly;
|
||||
using Xunit;
|
||||
|
||||
using SearchResult = JdeScoping.Core.Models.SearchResults.SearchResult;
|
||||
using MisSearchResult = JdeScoping.Core.Models.SearchResults.MisSearchResult;
|
||||
using MisNonMatchSearchResult = JdeScoping.Core.Models.SearchResults.MisNonMatchSearchResult;
|
||||
|
||||
namespace JdeScoping.ExcelIO.Tests;
|
||||
|
||||
/// <summary>
|
||||
@@ -29,11 +34,33 @@ public class ExcelExportIntegrationTests
|
||||
DataSheetPassword = "TestDataPass"
|
||||
});
|
||||
|
||||
var cache = new OutputColumnCache();
|
||||
var tableWriter = new AttributeTableWriter(cache);
|
||||
var registry = CreateTestRegistry();
|
||||
var tableWriter = new FluentTableWriter(registry);
|
||||
var criteriaGenerator = new CriteriaSheetGenerator(_options, tableWriter);
|
||||
|
||||
_service = new ExcelExportService(_logger, _options, criteriaGenerator, tableWriter);
|
||||
_service = new ExcelExportService(_logger, _options, criteriaGenerator, tableWriter, registry);
|
||||
}
|
||||
|
||||
private static ExcelMapRegistry CreateTestRegistry()
|
||||
{
|
||||
var registry = new ExcelMapRegistry();
|
||||
|
||||
// Search result maps
|
||||
registry.Register(new SearchResultMap());
|
||||
registry.Register(new MisSearchResultMap());
|
||||
registry.Register(new MisNonMatchSearchResultMap());
|
||||
|
||||
// Filter entry maps
|
||||
registry.Register(new TimespanFilterMap());
|
||||
registry.Register(new WorkOrderFilterEntryMap());
|
||||
registry.Register(new ItemNumberFilterEntryMap());
|
||||
registry.Register(new ProfitCenterFilterEntryMap());
|
||||
registry.Register(new WorkCenterFilterEntryMap());
|
||||
registry.Register(new OperatorFilterEntryMap());
|
||||
registry.Register(new ComponentLotFilterEntryMap());
|
||||
registry.Register(new ItemOperationMisFilterEntryMap());
|
||||
|
||||
return registry;
|
||||
}
|
||||
|
||||
#region Sheet Count Tests
|
||||
@@ -387,10 +414,13 @@ public class ExcelExportIntegrationTests
|
||||
public async Task GenerateAsync_SearchResults_ContainsCorrectData()
|
||||
{
|
||||
var search = CreateMinimalSearchModel();
|
||||
var searchResult = CreateSampleSearchResult();
|
||||
searchResult.WorkOrderNumber = 99999;
|
||||
searchResult.ItemNumber = "TEST-ITEM-001";
|
||||
searchResult.LotNumber = "LOT-999";
|
||||
var searchResult = new SearchResult
|
||||
{
|
||||
WorkOrderNumber = 99999,
|
||||
ItemNumber = "TEST-ITEM-001",
|
||||
LotNumber = "LOT-999",
|
||||
Flagged = true
|
||||
};
|
||||
search.Results.Add(searchResult);
|
||||
|
||||
var result = await _service.GenerateAsync(search);
|
||||
@@ -408,9 +438,16 @@ public class ExcelExportIntegrationTests
|
||||
[Fact]
|
||||
public async Task GenerateAsync_MisInfo_ContainsCorrectData()
|
||||
{
|
||||
var search = CreateSearchModelWithMisData();
|
||||
search.MisResults![0].ItemNumber = "MIS-ITEM-001";
|
||||
search.MisResults[0].MisNumber = "MIS-12345";
|
||||
var search = CreateMinimalSearchModel();
|
||||
search.ExtractMisData = true;
|
||||
search.MisResults = [
|
||||
new MisSearchResult
|
||||
{
|
||||
ItemNumber = "MIS-ITEM-001",
|
||||
MisNumber = "MIS-12345"
|
||||
}
|
||||
];
|
||||
search.MisNonMatchResults = [];
|
||||
|
||||
var result = await _service.GenerateAsync(search);
|
||||
|
||||
@@ -426,9 +463,16 @@ public class ExcelExportIntegrationTests
|
||||
[Fact]
|
||||
public async Task GenerateAsync_Investigation_ContainsCorrectData()
|
||||
{
|
||||
var search = CreateSearchModelWithMisData();
|
||||
search.MisNonMatchResults![0].WorkOrderNumber = 77777;
|
||||
search.MisNonMatchResults[0].ItemNumber = "INV-ITEM-001";
|
||||
var search = CreateMinimalSearchModel();
|
||||
search.ExtractMisData = true;
|
||||
search.MisResults = [];
|
||||
search.MisNonMatchResults = [
|
||||
new MisNonMatchSearchResult
|
||||
{
|
||||
WorkOrderNumber = 77777,
|
||||
ItemNumber = "INV-ITEM-001"
|
||||
}
|
||||
];
|
||||
|
||||
var result = await _service.GenerateAsync(search);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user