From 24026f8de8774b3b51707c4f2c0742d9b0c1ca81 Mon Sep 17 00:00:00 2001 From: Lyudmila Romanova Date: Thu, 16 Jun 2022 11:03:49 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B5=D1=81=D1=82=D1=8B=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DetectedOperationServiceTest.cs | 96 +++++++++++++++++-- 1 file changed, 89 insertions(+), 7 deletions(-) diff --git a/AsbCloudWebApi.Tests/ServicesTests/DetectedOperationServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/DetectedOperationServiceTest.cs index f7187037..8e5cd5a7 100644 --- a/AsbCloudWebApi.Tests/ServicesTests/DetectedOperationServiceTest.cs +++ b/AsbCloudWebApi.Tests/ServicesTests/DetectedOperationServiceTest.cs @@ -17,9 +17,16 @@ namespace AsbCloudWebApi.Tests.ServicesTests private readonly AsbCloudDbContext context; private readonly CacheDb cacheDb; private readonly DetectedOperationService service; - #region Задача данных private Deposit deposit = new Deposit { Id = 1, Caption = "Депозит 1" }; private Cluster cluster = new Cluster { Id = 1, Caption = "Кластер 1", IdDeposit = 1, Timezone = new SimpleTimezone() }; + private WellDto wellDto = new WellDto + { + Id = 1, + Caption = "Test well 1", + IdTelemetry = 1, + IdCluster = 1, + Timezone = new SimpleTimezoneDto { Hours = 5 } + }; private Well well = new Well { Id = 1, @@ -35,7 +42,8 @@ namespace AsbCloudWebApi.Tests.ServicesTests Patronymic = "Тест", Surname = "Тестович" }; - private DetectedOperation do1 = new DetectedOperation + private List do1 = new List { + new DetectedOperation { Id = 1, IdCategory = 1, @@ -43,14 +51,54 @@ namespace AsbCloudWebApi.Tests.ServicesTests DateStart = DateTimeOffset.Parse("2022-05-16T10:00:00.286Z"), DateEnd = DateTimeOffset.Parse("2022-05-16T18:00:00.286Z"), DepthStart = 100, + Value = 50, DepthEnd = 1000 - }; + }, + new DetectedOperation + { + Id = 2, + IdCategory = 1, + IdTelemetry = 1, + DateStart = DateTimeOffset.Parse("2022-05-16T10:00:00.286Z"), + DateEnd = DateTimeOffset.Parse("2022-05-16T18:00:00.286Z"), + DepthStart = 100, + Value = 10, + DepthEnd = 1000 + }}; private Telemetry telemetry = new Telemetry { Id = 1, RemoteUid = Guid.NewGuid().ToString() }; - #endregion + private OperationValue ovd = new OperationValue + { + Id = 1, + StandardValue = 200, + TargetValue = 100, + DepthEnd = 300, + DepthStart = 100, + IdOperationCategory=1, + IdWell = 1 + }; + private List sch = new List { new Schedule + { + Id = 1, + IdDriller = 1, + IdWell = 1, + DrillStart = DateTimeOffset.Parse("2022-05-16T10:00:00.286Z"), + DrillEnd = DateTimeOffset.Parse("2022-05-16T18:00:00.286Z"), + ShiftStart = new TimeOnly(10, 00), + ShiftEnd = new TimeOnly(18, 00) + }, new Schedule + { + Id = 2, + IdDriller = 1, + IdWell = 1, + DrillStart = DateTimeOffset.Parse("2022-05-17T10:00:00.286Z"), + DrillEnd = DateTimeOffset.Parse("2022-05-17T18:00:00.286Z"), + ShiftStart = new TimeOnly(10, 00), + ShiftEnd = new TimeOnly(18, 00) + } }; public DetectedOperationServiceTest() { @@ -62,13 +110,16 @@ namespace AsbCloudWebApi.Tests.ServicesTests context.Clusters.Add(cluster); context.Wells.Add(well); context.Drillers.Add(driller); - context.DetectedOperations.Add(do1); + context.DetectedOperations.AddRange(do1); + context.OperationValues.Add(ovd); + context.Schedule.AddRange(sch); context.SaveChanges(); var timezone = new SimpleTimezoneDto { Hours = 5 }; var wellServiceMock = new Mock(); wellServiceMock.Setup(s => s.GetTimezone(It.IsAny())).Returns(timezone); + wellServiceMock.Setup(s => s.GetAsync(It.IsAny(),CancellationToken.None)).Returns(Task.Run(() => wellDto)); var operationValueService = new OperationValueService(context); var scheduleService = new ScheduleService(context, wellServiceMock.Object); @@ -84,9 +135,40 @@ namespace AsbCloudWebApi.Tests.ServicesTests [Fact] public async Task Count_grouping_by_driller() { - var count = 10; var list = await service.GetAsync(1, null, CancellationToken.None); - Assert.Equal(3, count); + Assert.Equal(2, list.Stats.First().Count); + } + + [Fact] + public async Task AvgVal_grouping_by_driller() + { + var list = await service.GetAsync(1, null, CancellationToken.None); + Assert.Equal(30, list.Stats.First().AverageValue); + } + + [Fact] + public async Task AvgTargetVal_grouping_by_driller() + { + var list = await service.GetAsync(1, null, CancellationToken.None); + Assert.Equal(100, list.Stats.First().AverageTargetValue); + } + [Fact] + public async Task Loss_grouping_by_driller() + { + var list = await service.GetAsync(1, null, CancellationToken.None); + Assert.Equal(0, list.Stats.First().Loss); + } + [Fact] + public async Task Efficiency_grouping_by_driller() + { + var list = await service.GetAsync(1, null, CancellationToken.None); + Assert.Equal(100, list.Stats.First().Efficiency); + } + [Fact] + public async Task GroupCount_grouping_by_driller() + { + var list = await service.GetAsync(1, null, CancellationToken.None); + Assert.Equal(1, list.Stats.Count()); } }