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( 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( factTrajectoryParserOptions.IdParserService); var trajectoryRows = parserService.Parse(stream, factTrajectoryParserOptions); Assert.Equal(4, trajectoryRows.Item.Count()); } }