68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using JdeScoping.Core.Models.SearchResults;
|
|
using JdeScoping.ExcelIO.Generators;
|
|
using JdeScoping.ExcelIO.Mapping;
|
|
using JdeScoping.ExcelIO.Mapping.Maps;
|
|
using JdeScoping.ExcelIO.Options;
|
|
using Microsoft.Extensions.Logging;
|
|
using NPOI.XSSF.UserModel;
|
|
using NSubstitute;
|
|
|
|
namespace JdeScoping.ExcelIO.Tests.Fixtures;
|
|
|
|
public abstract class WorkbookFixtureBase : IDisposable
|
|
{
|
|
public XSSFWorkbook Workbook { get; }
|
|
public SearchModel SearchModel { get; }
|
|
|
|
protected abstract SearchModel CreateSearchModel();
|
|
|
|
protected WorkbookFixtureBase()
|
|
{
|
|
SearchModel = CreateSearchModel();
|
|
var service = CreateExportService();
|
|
var bytes = service.GenerateAsync(SearchModel).GetAwaiter().GetResult();
|
|
Workbook = new XSSFWorkbook(new MemoryStream(bytes));
|
|
}
|
|
|
|
private static ExcelExportService CreateExportService()
|
|
{
|
|
var logger = Substitute.For<ILogger<ExcelExportService>>();
|
|
var options = Microsoft.Extensions.Options.Options.Create(new ExcelExportOptions
|
|
{
|
|
CriteriaSheetPassword = "TestCriteriaPass",
|
|
DataSheetPassword = "TestDataPass"
|
|
});
|
|
|
|
var registry = CreateTestRegistry();
|
|
var tableWriter = new FluentTableWriter(registry);
|
|
var criteriaGenerator = new CriteriaSheetGenerator(options, tableWriter);
|
|
|
|
return new ExcelExportService(logger, options, criteriaGenerator, tableWriter, registry);
|
|
}
|
|
|
|
private static ExcelMapRegistry CreateTestRegistry()
|
|
{
|
|
var registry = new ExcelMapRegistry();
|
|
|
|
registry.Register(new SearchResultMap());
|
|
registry.Register(new MisSearchResultMap());
|
|
registry.Register(new MisNonMatchSearchResultMap());
|
|
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;
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Workbook.Dispose();
|
|
GC.SuppressFinalize(this);
|
|
}
|
|
}
|