forked from ddrilling/AsbCloudServer
82650b1cfb
1. Сделан рефакторинг сервисов парсинга траекторий 2. Добавлена фабрика создания парсеров 3. Рефакторинг тестов
60 lines
2.0 KiB
C#
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());
|
|
}
|
|
} |