diff --git a/AsbCloudWebApi.Tests/Builders/DetectableTelemetryBuilder.cs b/AsbCloudWebApi.Tests/Builders/DetectableTelemetryBuilder.cs deleted file mode 100644 index f0acdc09..00000000 --- a/AsbCloudWebApi.Tests/Builders/DetectableTelemetryBuilder.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using AsbCloudInfrastructure.Services.DetectOperations; - -namespace AsbCloudWebApi.Tests.Builders; - -public class DetectableTelemetryBuilder -{ - private DateTimeOffset dateTime = DateTimeOffset.UtcNow; - private float wellDepth = 300; - private float pressure = 15; - private float hookWeight = 20; - private float blockPosition = 20; - private float bitDepth = 151; - private float axialLoad = 19; - - public DetectableTelemetryBuilder WithDateTime(DateTimeOffset newDateTime) - { - dateTime = newDateTime; - return this; - } - - public DetectableTelemetryBuilder WithWellDepth(float newWllDepth) - { - wellDepth = newWllDepth; - return this; - } - - public DetectableTelemetryBuilder WithPressure(float newPressure) - { - pressure = newPressure; - return this; - } - - public DetectableTelemetryBuilder WithHookWeight(float newHookWeight) - { - hookWeight = newHookWeight; - return this; - } - - public DetectableTelemetryBuilder WithBlockPosition(float newBlockPosition) - { - blockPosition = newBlockPosition; - return this; - } - - public DetectableTelemetryBuilder WithBitDepth(float newBitDepth) - { - bitDepth = newBitDepth; - return this; - } - - public DetectableTelemetryBuilder WithAxialLoad(float newAxialLoad) - { - axialLoad = newAxialLoad; - return this; - } - - public DetectableTelemetry Build() => - new() - { - DateTime = dateTime, - WellDepth = wellDepth, - Pressure = pressure, - HookWeight = hookWeight, - BlockPosition = blockPosition, - BitDepth = bitDepth, - AxialLoad = axialLoad - }; -} \ No newline at end of file diff --git a/AsbCloudWebApi.Tests/CommonExtensions.cs b/AsbCloudWebApi.Tests/CommonExtensions.cs new file mode 100644 index 00000000..ac32b59f --- /dev/null +++ b/AsbCloudWebApi.Tests/CommonExtensions.cs @@ -0,0 +1,19 @@ +using Mapster; +using System; + +namespace AsbCloudWebApi.Tests; + +public static class CommonExtensions +{ + public static T Copy<T>(this T obj) + { + var copy = obj.Adapt<T>(); + return copy; + } + + public static T Mutate<T>(this T obj, Action<T> mutation) + { + var copy = obj.Copy(); + return copy; + } +} diff --git a/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs b/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs index 86c1b3ae..30d8da83 100644 --- a/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs +++ b/AsbCloudWebApi.Tests/Services/DetectedOperations/Detectors/DetectorSlipsTimeTests.cs @@ -1,6 +1,6 @@ using System; +using AsbCloudInfrastructure.Services.DetectOperations; using AsbCloudInfrastructure.Services.DetectOperations.Detectors; -using AsbCloudWebApi.Tests.Builders; using Xunit; namespace AsbCloudWebApi.Tests.Services.DetectedOperations.Detectors; @@ -9,7 +9,14 @@ public class DetectorSlipsTimeTests { private const int IdSlipsTime = 5011; - private readonly DetectableTelemetryBuilder telemetryBuilder = new(); + private readonly DetectableTelemetry telemetry = new() { + WellDepth = 300, + Pressure = 15, + HookWeight = 20, + BlockPosition = 20, + BitDepth = 151, + AxialLoad = 19, + }; private readonly DetectorSlipsTime sut = new(); @@ -17,12 +24,10 @@ public class DetectorSlipsTimeTests public void DetectOperation_by_change_block_position_and_axial_load_less_hook_weight_is_success() { //arrange - var point0 = telemetryBuilder - .Build(); + var point0 = telemetry.Copy(); - var point1 = telemetryBuilder - .WithBlockPosition(21) - .Build(); + var point1 = telemetry.Copy(); + point1.BlockPosition = 21; var telemetries = new[] { point0, point1 }; @@ -38,16 +43,14 @@ public class DetectorSlipsTimeTests [Fact] public void DetectOperation_by_high_pressure_is_success() { - //arrange - var point0 = telemetryBuilder - .Build(); + //arrange + var point0 = telemetry.Copy(); - var point1 = telemetryBuilder - .WithBlockPosition(21) - .WithAxialLoad(30) - .WithHookWeight(20) - .WithPressure(23) - .Build(); + var point1 = telemetry.Copy(); + point1.BlockPosition = 21; + point1.AxialLoad = 30; + point1.HookWeight = 20; + point1.Pressure = 23; var telemetries = new[] { point0, point1 }; @@ -63,14 +66,12 @@ public class DetectorSlipsTimeTests [Fact] public void ValidateOperation_with_duration_more_30_minutes_is_invalid() { - //arrange - var point0 = telemetryBuilder - .Build(); + //arrange + var point0 = telemetry.Copy(); - var point1 = telemetryBuilder - .WithDateTime(DateTimeOffset.UtcNow.AddMinutes(30)) - .WithBlockPosition(21) - .Build(); + var point1 = telemetry.Copy(); + point1.BlockPosition = 21; + point1.DateTime = DateTimeOffset.UtcNow.AddMinutes(30); var telemetries = new[] { point0, point1 };