DD.WellWorkover.Cloud/AsbCloudWebApi.Tests/Services/Trajectory/TrajectoryParserTest.cs
Степанов Дмитрий 82650b1cfb Сервисы парсинга траекторий
1. Сделан рефакторинг сервисов парсинга траекторий
2. Добавлена фабрика создания парсеров
3. Рефакторинг тестов
2024-01-29 15:03:53 +05:00

60 lines
2.0 KiB
C#

using System.Linq;
using AsbCloudApp.Data.Trajectory;
using AsbCloudApp.Requests.Import;
using AsbCloudInfrastructure.Services;
using Xunit;
namespace AsbCloudWebApi.Tests.Services.Trajectory;
public class TrajectoryParserTest
{
private const string UsingTemplateFile = "AsbCloudWebApi.Tests.Services.Trajectory.Templates";
private readonly TrajectoryParserRequest planTrajectoryParserOptions = new()
{
IdParserService = ParserServiceFactory.IdTrajectoryPlanParserService,
SheetName = "Плановая траектория",
HeaderRowsCount = 2
};
private readonly TrajectoryParserRequest factTrajectoryParserOptions = new()
{
IdParserService = ParserServiceFactory.IdTrajectoryFactManualParserService,
SheetName = "Фактическая траектория",
HeaderRowsCount = 2
};
private static readonly ParserServiceFactory parserServiceFactory = new();
[Fact]
public void Parse_trajectory_plan()
{
var stream = System.Reflection.Assembly.GetExecutingAssembly()
.GetManifestResourceStream($"{UsingTemplateFile}.TrajectoryPlanTemplate.xlsx");
if (stream is null)
Assert.Fail("Файла для импорта не существует");
var parserService = parserServiceFactory.Create<TrajectoryGeoPlanDto, TrajectoryParserRequest>(
planTrajectoryParserOptions.IdParserService);
var trajectoryRows = parserService.Parse(stream, planTrajectoryParserOptions);
Assert.Equal(3, trajectoryRows.Item.Count());
}
[Fact]
public void Parse_trajectory_fact_manual()
{
var stream = System.Reflection.Assembly.GetExecutingAssembly()
.GetManifestResourceStream($"{UsingTemplateFile}.TrajectoryFactManualTemplate.xlsx");
if (stream is null)
Assert.Fail("Файла для импорта не существует");
var parserService = parserServiceFactory.Create<TrajectoryGeoFactDto, TrajectoryParserRequest>(
factTrajectoryParserOptions.IdParserService);
var trajectoryRows = parserService.Parse(stream, factTrajectoryParserOptions);
Assert.Equal(4, trajectoryRows.Item.Count());
}
}