forked from ddrilling/AsbCloudServer
85 lines
2.0 KiB
C#
85 lines
2.0 KiB
C#
using System;
|
|
using AsbCloudInfrastructure.Services.DetectOperations.Detectors;
|
|
using AsbCloudWebApi.Tests.Builders;
|
|
using Xunit;
|
|
|
|
namespace AsbCloudWebApi.Tests.Services.DetectedOperations.Detectors;
|
|
|
|
public class DetectorSlipsTimeTests
|
|
{
|
|
private const int IdSlipsTime = 5011;
|
|
|
|
private readonly DetectableTelemetryBuilder telemetryBuilder = new();
|
|
|
|
private readonly DetectorSlipsTime sut = new();
|
|
|
|
[Fact]
|
|
public void DetectOperation_by_change_block_position_and_axial_load_less_hook_weight_is_success()
|
|
{
|
|
//arrange
|
|
var point0 = telemetryBuilder
|
|
.Build();
|
|
|
|
var point1 = telemetryBuilder
|
|
.WithBlockPosition(21)
|
|
.Build();
|
|
|
|
var telemetries = new[] { point0, point1 };
|
|
|
|
//act
|
|
var isDetectOperation = sut.TryDetect(0, telemetries, 0, telemetries.Length - 1, null, out var result);
|
|
|
|
//assert
|
|
Assert.True(isDetectOperation);
|
|
Assert.NotNull(result);
|
|
Assert.Equal(IdSlipsTime, result.Operation.IdCategory);
|
|
}
|
|
|
|
[Fact]
|
|
public void DetectOperation_by_high_pressure_is_success()
|
|
{
|
|
//arrange
|
|
var point0 = telemetryBuilder
|
|
.Build();
|
|
|
|
var point1 = telemetryBuilder
|
|
.WithBlockPosition(21)
|
|
.WithAxialLoad(30)
|
|
.WithHookWeight(20)
|
|
.WithPressure(23)
|
|
.Build();
|
|
|
|
var telemetries = new[] { point0, point1 };
|
|
|
|
//act
|
|
var isDetectOperation = sut.TryDetect(0, telemetries, 0, telemetries.Length - 1, null, out var result);
|
|
|
|
//assert
|
|
Assert.True(isDetectOperation);
|
|
Assert.NotNull(result);
|
|
Assert.Equal(IdSlipsTime, result.Operation.IdCategory);
|
|
}
|
|
|
|
[Fact]
|
|
public void ValidateOperation_with_duration_more_30_minutes_is_invalid()
|
|
{
|
|
//arrange
|
|
var point0 = telemetryBuilder
|
|
.Build();
|
|
|
|
var point1 = telemetryBuilder
|
|
.WithDateTime(DateTimeOffset.UtcNow.AddMinutes(30))
|
|
.WithBlockPosition(21)
|
|
.Build();
|
|
|
|
var telemetries = new[] { point0, point1 };
|
|
|
|
//act
|
|
var isDetectOperation = sut.TryDetect(0, telemetries, 0, telemetries.Length - 1, null, out var result);
|
|
|
|
//assert
|
|
Assert.False(isDetectOperation);
|
|
Assert.NotNull(result);
|
|
Assert.Equal(IdSlipsTime, result.Operation.IdCategory);
|
|
}
|
|
} |