Доработаны интеграционные тесты для DataSaubStat

This commit is contained in:
Olga Nemt 2024-02-06 10:29:01 +05:00
parent 163b9d55e1
commit a7d7440a07

View File

@ -1,10 +1,8 @@
using AsbCloudApp.Data;
using AsbCloudApp.Data.ProcessMapPlan;
using AsbCloudApp.Repositories;
using AsbCloudDb.Model;
using Mapster;
using Microsoft.Extensions.DependencyInjection;
using System.ComponentModel;
using Xunit;
namespace AsbCloudWebApi.IntegrationTests.Repository
@ -16,8 +14,8 @@ namespace AsbCloudWebApi.IntegrationTests.Repository
new DataSaubStatDto()
{
IdTelemetry = 1,
DateEnd = DateTimeOffset.UtcNow.AddDays(-10),
DateStart = DateTimeOffset.UtcNow.AddDays(-11),
DateEnd = new DateTimeOffset(2024, 1, 1, 20, 25, 0, TimeSpan.Zero),
DateStart = new DateTimeOffset(2024, 1, 1, 20, 15, 0, TimeSpan.Zero),
AxialLoad = 10.0,
AxialLoadLimitMax = 10.0,
AxialLoadSp = 10.0,
@ -33,17 +31,17 @@ namespace AsbCloudWebApi.IntegrationTests.Repository
Pressure = 10.0,
PressureIdle = 10.0,
PressureSp = 10.0,
RotorSpeed = 10.0,
RotorTorque = 10.0,
RotorTorqueSp = 10.0,
RotorTorqueLimitMax = 10.0,
RotorSpeed = 9.0,
RotorTorque = 9.0,
RotorTorqueSp = 9.0,
RotorTorqueLimitMax = 9.0,
Speed = 10.0
},
new DataSaubStatDto()
{
IdTelemetry = 1,
DateEnd = DateTimeOffset.UtcNow.AddDays(-20),
DateStart = DateTimeOffset.UtcNow.AddDays(-21),
IdTelemetry = 1,
DateEnd = new DateTimeOffset(2024, 2, 2, 20, 25, 0, TimeSpan.Zero),
DateStart = new DateTimeOffset(2024, 2, 2, 20, 15, 0, TimeSpan.Zero),
AxialLoad = 10.0,
AxialLoadLimitMax = 10.0,
AxialLoadSp = 10.0,
@ -70,24 +68,24 @@ namespace AsbCloudWebApi.IntegrationTests.Repository
{
Id = 2,
IdParent = null,
Name = "Категория 2"
Name = "Категория 2"
};
private readonly IDataSaubStatRepository dataSaubStatRepository;
public DataSaubStatRepositoryTest(WebAppFactoryFixture factory) : base(factory)
{
var stats = dbContext.Set<DataSaubStat>();
var dbSet = dbContext.Set<DataSaubStat>();
var categories = dbContext.Set<WellOperationCategory>();
categories.RemoveRange(categories);
stats.RemoveRange(stats);
dbSet.RemoveRange(dbSet);
dbContext.SaveChanges();
categories.Add(category);
var entities = statDtos.Select(stat => stat.Adapt<DataSaubStat>());
stats.AddRange(entities);
dbSet.AddRange(entities);
dbContext.SaveChanges();
dataSaubStatRepository = scope.ServiceProvider.GetRequiredService<IDataSaubStatRepository>();
@ -104,17 +102,39 @@ namespace AsbCloudWebApi.IntegrationTests.Repository
var actual = result.Any() ? result.First().DateEnd : DateTimeOffset.UnixEpoch;
//assert
Assert.Equal(expected.Ticks, actual.Ticks);
Assert.True((expected - actual).Ticks == 0.0);
}
[Fact]
public async Task InsertRangeAsync_returns_success()
{
//act
var result = await dataSaubStatRepository.InsertRangeAsync(statDtos, CancellationToken.None);
var dbSet = dbContext.Set<DataSaubStat>();
dbSet.RemoveRange(dbSet);
dbContext.SaveChanges();
var result = await dataSaubStatRepository.InsertRangeAsync(statDtos, CancellationToken.None);
//assert
Assert.Equal(statDtos.Length, result);
var statDtosFromDb = dbSet.Select(stat => stat.Adapt<DataSaubStatDto>()).ToArray();
var excludedProps = new[] {
nameof(DataSaubStat.Telemetry),
nameof(DataSaubStat.Id),
nameof(DataSaubStat.OperationCategory)
};
foreach (var statDtoFromDb in statDtosFromDb)
{
var statDto = statDtos
.Where(stat => stat.DateStart == statDtoFromDb.DateStart)
.Where(stat => stat.DateEnd == statDtoFromDb.DateEnd)
.FirstOrDefault();
MatchHelper.Match(statDtoFromDb, statDto, excludedProps);
}
}
}
}