diff --git a/AsbCloudApp/Requests/ProcessMapPlanBaseRequest.cs b/AsbCloudApp/Requests/ProcessMapPlanBaseRequest.cs
index 006c26e5..98a2dc4f 100644
--- a/AsbCloudApp/Requests/ProcessMapPlanBaseRequest.cs
+++ b/AsbCloudApp/Requests/ProcessMapPlanBaseRequest.cs
@@ -8,12 +8,6 @@ namespace AsbCloudApp.Requests;
///
public class ProcessMapPlanBaseRequest: ChangeLogBaseRequest
{
- ///
- /// Тип секции
- ///
- [Range(1, int.MaxValue, ErrorMessage = "Id секции - положительное число")]
- public int? IdWellSectionType { get; set; }
-
///
/// Вернуть данные, которые поменялись с указанной даты
///
@@ -42,7 +36,6 @@ public class ProcessMapPlanBaseRequestWithWell: ProcessMapPlanBaseRequest
public ProcessMapPlanBaseRequestWithWell(ProcessMapPlanBaseRequest request, int idWell)
{
IdWell=idWell;
- IdWellSectionType=request.IdWellSectionType;
UpdateFrom = request.UpdateFrom;
Moment = request.Moment;
}
diff --git a/AsbCloudInfrastructure/DependencyInjection.cs b/AsbCloudInfrastructure/DependencyInjection.cs
index 9f802e2e..591c195c 100644
--- a/AsbCloudInfrastructure/DependencyInjection.cs
+++ b/AsbCloudInfrastructure/DependencyInjection.cs
@@ -134,9 +134,9 @@ namespace AsbCloudInfrastructure
TypeAdapterConfig>.NewConfig()
.Include>()
- .Map(dest => dest, src => new ChangeLogDto()
+ .Map(dest => dest, src => new ChangeLogDto()
{
- Item = src.Adapt()
+ Item = src.Adapt()
});
}
diff --git a/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs b/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs
index 1c83500d..088518e9 100644
--- a/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs
+++ b/AsbCloudInfrastructure/Repository/ChangeLogRepositoryAbstract.cs
@@ -249,6 +249,7 @@ public abstract class ChangeLogRepositoryAbstract : ICh
{
var query = BuildQuery(request);
var entities = await query
+ .Where(e => e.Obsolete == null)
.OrderBy(e => e.Creation)
.ThenBy(e => e.Obsolete)
.ThenBy(e => e.Id)
diff --git a/AsbCloudInfrastructure/Repository/ProcessMapPlanBaseRepository.cs b/AsbCloudInfrastructure/Repository/ProcessMapPlanBaseRepository.cs
index 5e351db7..3d968ddc 100644
--- a/AsbCloudInfrastructure/Repository/ProcessMapPlanBaseRepository.cs
+++ b/AsbCloudInfrastructure/Repository/ProcessMapPlanBaseRepository.cs
@@ -32,9 +32,6 @@ public class ProcessMapPlanBaseRepository : ChangeLogRepositoryAb
.Include(e => e.WellSectionType)
.Where(e => e.IdWell == request.IdWell);
- if (request.IdWellSectionType.HasValue)
- query = query.Where(e => e.IdWellSectionType == request.IdWellSectionType);
-
if (request.UpdateFrom.HasValue)
{
var from = request.UpdateFrom.Value.ToUniversalTime();
diff --git a/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs b/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs
index 93ce768b..51655328 100644
--- a/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs
+++ b/AsbCloudWebApi.IntegrationTests/Clients/IProcessMapPlanDrillingClient.cs
@@ -5,15 +5,15 @@ using Refit;
namespace AsbCloudWebApi.IntegrationTests.Clients;
-public interface IProcessMapPlanDrillingClient
+public interface IProcessMapPlanDrillingClient where TDto : ProcessMapPlanBaseDto
{
private const string BaseRoute = "/api/well/{idWell}/ProcessMapPlanDrilling";
[Post(BaseRoute)]
- Task> InsertRange(int idWell, [Body] IEnumerable dtos);
+ Task> InsertRange(int idWell, [Body] IEnumerable dtos);
[Post($"{BaseRoute}/replace")]
- Task> ClearAndInsertRange(int idWell, [Body] IEnumerable dtos);
+ Task> ClearAndInsertRange(int idWell, [Body] IEnumerable dtos);
[Delete(BaseRoute)]
Task> DeleteRange(int idWell, [Body] IEnumerable ids);
@@ -22,18 +22,24 @@ public interface IProcessMapPlanDrillingClient
Task> Clear(int idWell);
[Get(BaseRoute)]
- Task>> Get(int idWell, ProcessMapPlanBaseRequest request);
+ Task>> Get(int idWell);
+
+ [Get($"{BaseRoute}/history")]
+ Task>>> Get(int idWell, DateTimeOffset? moment);
+
+ [Get("/api/telemetry/{uid}/ProcessMapPlanDrilling")]
+ Task>>> Get(string uid, DateTimeOffset? updateFrom);
[Get($"{BaseRoute}/changeLog")]
- Task>> GetChangeLog(int idWell, DateOnly? date);
+ Task>> GetChangeLog(int idWell, DateOnly? date);
[Get($"{BaseRoute}/dates")]
Task>> GetDatesChange(int idWell);
[Put(BaseRoute)]
- Task> UpdateOrInsertRange(int idWell, IEnumerable dtos);
+ Task> UpdateOrInsertRange(int idWell, IEnumerable dtos);
[Multipart]
[Post(BaseRoute + "/parse")]
- Task>> Parse(int idWell, [AliasAs("file")] StreamPart stream);
+ Task>> Parse(int idWell, [AliasAs("file")] StreamPart stream);
}
diff --git a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs
index 18bda7f0..cddd7781 100644
--- a/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs
+++ b/AsbCloudWebApi.IntegrationTests/Controllers/ProcessMapPlan/ProcessMapPlanDrillingControllerTest.cs
@@ -1,618 +1,556 @@
-//using AsbCloudApp.Requests;
-//using AsbCloudDb.Model.ProcessMapPlan;
-//using AsbCloudWebApi.IntegrationTests.Clients;
-//using Mapster;
-//using Microsoft.EntityFrameworkCore;
-//using System.Net;
-//using System.Reflection;
-//using AsbCloudDb.Model.ProcessMaps;
-//using AsbCloudWebApi.IntegrationTests.Data;
-//using Refit;
-//using Xunit;
-//using AsbCloudApp.Data.ProcessMaps;
-//using AsbCloudDb.Model;
-//using AsbCloudApp.Data.User;
-
-//namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan;
-
-//public class ProcessMapPlanDrillingControllerTest: BaseIntegrationTest
-//{
-// private const int IdWell = 1;
-
-// private readonly ProcessMapPlanDrillingDto dto = new (){
-// Id = 0,
-// Creation = new(),
-// Obsolete = null,
-// IdState = 0,
-// IdPrevious = null,
-
-// IdWell = IdWell,
-// Section = "Кондуктор",
-// IdWellSectionType = 3,
-// DepthStart = 0.5,
-// DepthEnd = 1.5,
-
-// IdMode = 1,
-// AxialLoadPlan = 2.718281,
-// AxialLoadLimitMax = 3.1415926,
-// DeltaPressurePlan = 4,
-// DeltaPressureLimitMax = 5,
-// TopDriveTorquePlan = 6,
-// TopDriveTorqueLimitMax = 7,
-// TopDriveSpeedPlan = 8,
-// TopDriveSpeedLimitMax = 9,
-// FlowPlan = 10,
-// FlowLimitMax = 11,
-// RopPlan = 12,
-// UsageSaub = 13,
-// UsageSpin = 14,
-// Comment = "это тестовая запись",
-// };
-// private readonly ProcessMapPlanDrilling entity = new ()
-// {
-// Id = 0,
-// IdAuthor = 1,
-// IdEditor = null,
-// Creation = DateTimeOffset.UtcNow,
-// Obsolete = null,
-// IdState = AsbCloudDb.Model.ChangeLogAbstract.IdStateActual,
-// IdPrevious = null,
-
-// IdWell = IdWell,
-// IdWellSectionType = 1,
-// DepthStart = 0.5,
-// DepthEnd = 1.5,
-
-// IdMode = 1,
-// AxialLoadPlan = 2.718281,
-// AxialLoadLimitMax = 3.1415926,
-// DeltaPressurePlan = 4,
-// DeltaPressureLimitMax = 5,
-// TopDriveTorquePlan = 6,
-// TopDriveTorqueLimitMax = 7,
-// TopDriveSpeedPlan = 8,
-// TopDriveSpeedLimitMax = 9,
-// FlowPlan = 10,
-// FlowLimitMax = 11,
-// RopPlan = 12,
-// UsageSaub = 13,
-// UsageSpin = 14,
-// Comment = "это тестовая запись",
-// };
-
-// private IProcessMapPlanDrillingClient client;
-
-// public ProcessMapPlanDrillingControllerTest(WebAppFactoryFixture factory) : base(factory)
-// {
-// dbContext.CleanupDbSet();
-// client = factory.GetAuthorizedHttpClient(string.Empty);
-// }
-
-// [Fact]
-// public async Task InsertRange_returns_success()
-// {
-// //arrange
-// var expected = dto.Adapt();
-
-// //act
-// var response = await client.InsertRange(dto.IdWell, new[] { expected });
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.Equal(1, response.Content);
-
-// var entity = dbContext
-// .Set()
-// .Where(p => p.AxialLoadPlan == dto.AxialLoadPlan)
-// .Where(p => p.AxialLoadLimitMax == dto.AxialLoadLimitMax)
-// .Where(p => p.Comment == dto.Comment)
-// .FirstOrDefault(p => p.IdWell == dto.IdWell);
-
-// Assert.NotNull(entity);
-
-// var actual = entity.Adapt();
-// Assert.Equal(ProcessMapPlanBase.IdStateActual, actual.IdState);
-
-// var excludeProps = new[] {
-// nameof(ProcessMapPlanDrillingDto.Id),
-// nameof(ProcessMapPlanDrillingDto.IdState),
-// nameof(ProcessMapPlanDrillingDto.Author),
-// nameof(ProcessMapPlanDrillingDto.Creation),
-// nameof(ProcessMapPlanDrillingDto.Section)
-// };
-// MatchHelper.Match(expected, actual, excludeProps);
-// }
-
-// [Fact]
-// public async Task InsertRange_returns_BadRequest_for_IdWellSectionType()
-// {
-// //arrange
-// var badDto = dto.Adapt();
-// badDto.IdWellSectionType = int.MaxValue;
-
-// //act
-// var response = await client.InsertRange(dto.IdWell, new[] { badDto });
-
-// //assert
-// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
-// }
-
-// [Fact]
-// public async Task InsertRange_returns_BadRequest_for_IdMode()
-// {
-// //arrange
-// var badDto = dto.Adapt();
-// badDto.IdMode = int.MaxValue;
-
-// //act
-// var response = await client.InsertRange(dto.IdWell, new[] { badDto });
-
-// //assert
-// Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
-// }
-
-// [Fact]
-// public async Task ClearAndInsertRange_returns_success()
-// {
-// // arrange
-// var dbset = dbContext.Set();
-
-// var entry = dbset.Add(entity);
-// dbContext.SaveChanges();
-// entry.State = EntityState.Detached;
-
-// var startTime = DateTimeOffset.UtcNow;
-
-// // act
-// var result = await client.ClearAndInsertRange(entity.IdWell, new ProcessMapPlanDrillingDto[] { dto });
-
-// // assert
-// var doneTime = DateTimeOffset.UtcNow;
-// Assert.Equal(HttpStatusCode.OK, result.StatusCode);
-// Assert.Equal(2, result.Content);
-
-// var count = dbset.Count();
-// Assert.Equal(2, count);
-
-// var oldEntity = dbset.First(p => p.Id == entry.Entity.Id);
-// Assert.Equal(ProcessMapPlanBase.IdCleared, oldEntity.IdState);
-// Assert.Equal(1, oldEntity.IdEditor);
-// Assert.NotNull(oldEntity.Obsolete);
-// Assert.InRange(oldEntity.Obsolete.Value, startTime, doneTime);
-
-// var newEntity = dbset.First(p => p.Id != entry.Entity.Id);
-// Assert.Equal(ProcessMapPlanBase.IdStateActual, newEntity.IdState);
-// Assert.Equal(1, newEntity.IdAuthor);
-// Assert.Null(newEntity.IdEditor);
-// Assert.Null(newEntity.Obsolete);
-// Assert.Null(newEntity.IdPrevious);
-// Assert.InRange(newEntity.Creation, startTime, doneTime);
-// }
-
-// [Fact]
-// public async Task UpdateOrInsertRange_returns_success()
-// {
-// // arrange
-// var startTime = DateTimeOffset.UtcNow;
-
-// var dbset = dbContext.Set();
-// var user = dbContext.Set().First().Adapt();
-// user.Surname = "userSurname";
-// user.Email = "user@mail.domain";
-
-// var entry = dbset.Add(entity);
-// dbContext.SaveChanges();
-// entry.State = EntityState.Detached;
-
-// var dtoUpdate = dto.Adapt();
-// dtoUpdate.IdWell = 0;
-// dtoUpdate.Id = entry.Entity.Id;
-// dtoUpdate.Comment = "nebuchadnezzar";
-// dtoUpdate.DeltaPressureLimitMax++;
-// dtoUpdate.DeltaPressurePlan++;
-// dtoUpdate.FlowPlan++;
-// dtoUpdate.FlowLimitMax++;
-// dtoUpdate.RopPlan++;
-// dtoUpdate.AxialLoadPlan++;
-// dtoUpdate.AxialLoadLimitMax++;
-// dtoUpdate.DepthStart++;
-// dtoUpdate.DepthEnd++;
-// dtoUpdate.TopDriveSpeedPlan++;
-// dtoUpdate.TopDriveSpeedLimitMax++;
-// dtoUpdate.TopDriveTorquePlan++;
-// dtoUpdate.TopDriveTorqueLimitMax++;
-// dtoUpdate.Author = user;
-
-// var dtoInsert = dtoUpdate.Adapt();
-// dtoInsert.Id = 0;
-// dtoInsert.Comment = "nebuchad";
-// dtoInsert.DeltaPressureLimitMax++;
-// dtoInsert.DeltaPressurePlan++;
-// dtoInsert.FlowPlan++;
-// dtoInsert.FlowLimitMax++;
-// dtoInsert.RopPlan++;
-// dtoInsert.AxialLoadPlan++;
-// dtoInsert.AxialLoadLimitMax++;
-// dtoInsert.DepthStart++;
-// dtoInsert.DepthEnd++;
-// dtoInsert.TopDriveSpeedPlan++;
-// dtoInsert.TopDriveSpeedLimitMax++;
-// dtoInsert.TopDriveTorquePlan++;
-// dtoInsert.TopDriveTorqueLimitMax++;
-// dtoInsert.Author = user;
-
-// // act
-// var result = await client.UpdateOrInsertRange(entity.IdWell, new ProcessMapPlanDrillingDto[] { dtoUpdate, dtoInsert });
-
-// // assert
-// var doneTime = DateTimeOffset.UtcNow;
-// Assert.Equal(HttpStatusCode.OK, result.StatusCode);
-// Assert.Equal(3, result.Content);
-
-// var count = dbset.Count();
-// Assert.Equal(3, count);
-
-// var oldEntity = dbset.First(p => p.Id == entry.Entity.Id);
-// Assert.Equal(ProcessMapPlanBase.IdStateReplaced, oldEntity.IdState);
-// Assert.Equal(1, oldEntity.IdEditor);
-// Assert.NotNull(oldEntity.Obsolete);
-// Assert.InRange(oldEntity.Obsolete.Value, startTime, doneTime);
-
-// var newEntity = dbset.First(p => p.Comment == dtoUpdate.Comment);
-// Assert.Equal(ProcessMapPlanBase.IdStateActual, newEntity.IdState);
-// Assert.Equal(1, newEntity.IdAuthor);
-// Assert.Null(newEntity.IdEditor);
-// Assert.Null(newEntity.Obsolete);
-// Assert.Equal(oldEntity.Id, newEntity.IdPrevious);
-// Assert.InRange(newEntity.Creation, startTime, doneTime);
-
-// var expected = dtoUpdate.Adapt();
-// var excludeProps = new[] {
-// nameof(ProcessMapPlanDrilling.Id),
-// nameof(ProcessMapPlanDrilling.IdWell),
-// nameof(ProcessMapPlanDrilling.Author),
-// nameof(ProcessMapPlanDrilling.IdAuthor),
-// nameof(ProcessMapPlanDrilling.Editor),
-// nameof(ProcessMapPlanDrilling.Creation),
-// };
-// MatchHelper.Match(expected, newEntity!, excludeProps);
-// }
-
-// [Fact]
-// public async Task DeleteRange_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// var entry = dbset.Add(entity);
-// dbContext.SaveChanges();
-// entry.State = EntityState.Detached;
-
-// var startTime = DateTimeOffset.UtcNow;
-
-// //act
-// var response = await client.DeleteRange(dto.IdWell, new[] { entry.Entity.Id });
-
-// //assert
-// var doneTime = DateTimeOffset.UtcNow;
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.Equal(1, response.Content);
-
-// var actual = dbContext
-// .Set()
-// .FirstOrDefault(p => p.Id == entry.Entity.Id);
-
-// Assert.NotNull(actual);
-// Assert.Equal(ProcessMapPlanBase.IdStateDeleted, actual.IdState);
-// Assert.Equal(1, actual.IdEditor);
-// Assert.NotNull(actual.Obsolete);
-// Assert.InRange(actual.Obsolete.Value, startTime, doneTime);
-// }
-
-
-// [Fact]
-// public async Task Clear_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// var entry = dbset.Add(entity);
-// dbContext.SaveChanges();
-// entry.State = EntityState.Detached;
-
-// var startTime = DateTimeOffset.UtcNow;
-
-// //act
-// var response = await client.Clear(dto.IdWell);
-
-// //assert
-// var doneTime = DateTimeOffset.UtcNow;
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.Equal(1, response.Content);
-
-// var actual = dbContext
-// .Set()
-// .FirstOrDefault(p => p.Id == entry.Entity.Id);
-
-// Assert.NotNull(actual);
-// Assert.Equal(ProcessMapPlanBase.IdCleared, actual.IdState);
-// Assert.Equal(1, actual.IdEditor);
-// Assert.NotNull(actual.Obsolete);
-// Assert.InRange(actual.Obsolete.Value, startTime, doneTime);
-// }
-
-// [Fact]
-// public async Task GetDatesChange_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// var entity2 = entity.Adapt();
-// entity2.Creation = entity.Creation.AddDays(1);
-// dbset.Add(entity);
-// dbset.Add(entity2);
-// dbContext.SaveChanges();
-// var timezoneHours = Defaults.Timezone.Hours;
-// var offset = TimeSpan.FromHours(timezoneHours);
-// var dates = new[] { entity.Creation, entity2.Creation }
-// .Select(d => d.ToOffset(offset))
-// .Select(d => new DateOnly(d.Year, d.Month, d.Day));
-
-// //act
-// var response = await client.GetDatesChange(dto.IdWell);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Equal(2, response.Content.Count());
-// Assert.All(response.Content, d => dates.Contains(d));
-// }
-
-// [Fact]
-// public async Task Get_all_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// dbset.Add(entity);
-
-// var entityDeleted = entity.Adapt();
-// entityDeleted.Creation = entity.Creation.AddDays(-1);
-// entityDeleted.Obsolete = entity.Creation;
-// entityDeleted.IdState = ProcessMapPlanBase.IdStateDeleted;
-// entityDeleted.IdEditor = 1;
-// dbset.Add(entityDeleted);
-
-// dbContext.SaveChanges();
-
-// //act
-// var request = new ProcessMapPlanBaseRequest();
-// var response = await client.Get(dto.IdWell, request);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Equal(2, response.Content.Count());
-// }
-
-// [Fact]
-// public async Task Get_actual_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// dbset.Add(entity);
-
-// var entityDeleted = entity.Adapt();
-// entityDeleted.Creation = entity.Creation.AddDays(-1);
-// entityDeleted.Obsolete = entity.Creation;
-// entityDeleted.IdState = ProcessMapPlanBase.IdStateDeleted;
-// entityDeleted.IdEditor = 1;
-// entityDeleted.Comment = "nothing";
-// dbset.Add(entityDeleted);
-
-// dbContext.SaveChanges();
-
-// //act
-// var request = new ProcessMapPlanBaseRequest {
-// Moment = new DateTimeOffset(3000, 1, 1, 0, 0, 0, 0, TimeSpan.Zero)
-// };
-// var response = await client.Get(dto.IdWell, request);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Single(response.Content);
-
-// var actual = response.Content.First()!;
-
-// var expected = entity.Adapt()!;
-// var excludeProps = new[] {
-// nameof(ProcessMapPlanDrillingDto.Id),
-// nameof(ProcessMapPlanDrillingDto.Author),
-// nameof(ProcessMapPlanDrillingDto.Creation),
-// };
-// MatchHelper.Match(expected, actual, excludeProps);
-// }
-
-// [Fact]
-// public async Task Get_at_moment_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// var now = DateTimeOffset.UtcNow;
-// var entityDeleted = entity.Adapt();
-// entityDeleted.Creation = now;
-// entityDeleted.Obsolete = now.AddMinutes(1);
-// entityDeleted.IdState = ProcessMapPlanBase.IdStateDeleted;
-// entityDeleted.IdEditor = 1;
-// entityDeleted.Comment = "nothing";
-// dbset.Add(entityDeleted);
-
-// var entityDeleted2 = entity.Adapt();
-// entityDeleted2.Creation = now.AddMinutes(1);
-// entityDeleted2.Obsolete = now.AddMinutes(2);
-// entityDeleted2.IdState = ProcessMapPlanBase.IdStateDeleted;
-// entityDeleted2.IdEditor = 1;
-// entityDeleted2.Comment = "nothing";
-// dbset.Add(entityDeleted2);
-
-// dbContext.SaveChanges();
-
-// //act
-// var request = new ProcessMapPlanBaseRequest
-// {
-// Moment = now.AddMinutes(0.5),
-// };
-// var response = await client.Get(dto.IdWell, request);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Single(response.Content);
-// }
-
-// [Fact]
-// public async Task Get_section_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// dbset.Add(entity);
-
-// var entity2 = entity.Adapt();
-// entity2.IdWellSectionType = 2;
-// entity2.Comment = "IdWellSectionType = 2";
-// dbset.Add(entity2);
-
-// dbContext.SaveChanges();
-
-// //act
-// var request = new ProcessMapPlanBaseRequest
-// {
-// IdWellSectionType = 2,
-// };
-// var response = await client.Get(dto.IdWell, request);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Single(response.Content);
-
-// var actual = response.Content.First()!;
-
-// var expected = entity2.Adapt()!;
-// var excludeProps = new[] {
-// nameof(ProcessMapPlanDrillingDto.Id),
-// nameof(ProcessMapPlanDrillingDto.Author),
-// nameof(ProcessMapPlanDrillingDto.Creation),
-// };
-// MatchHelper.Match(expected, actual, excludeProps);
-// }
-
-// [Fact]
-// public async Task Get_updated_returns_success()
-// {
-// //arrange
-// var dbset = dbContext.Set();
-
-// dbset.Add(entity);
-
-// var entity2 = entity.Adapt();
-// entity2.Creation = entity.Creation.AddHours(1);
-// entity2.Comment = "IdWellSectionType = 2";
-// dbset.Add(entity2);
-
-// var entity3 = entity.Adapt();
-// entity3.Obsolete = entity.Creation.AddHours(1);
-// entity3.Comment = "IdWellSectionType = 3";
-// dbset.Add(entity3);
-
-// dbContext.SaveChanges();
-
-// var timezoneHours = Defaults.Timezone.Hours;
-// var offset = TimeSpan.FromHours(timezoneHours);
-// var updateFrom = entity.Creation.ToOffset(offset).AddHours(0.5);
-
-// //act
-// var request = new ProcessMapPlanBaseRequest
-// {
-// UpdateFrom = updateFrom,
-// };
-// var response = await client.Get(dto.IdWell, request);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-// Assert.NotNull(response.Content);
-// Assert.Equal(2, response.Content.Count());
-
-// var actual = response.Content
-// .First(p => p.Comment == entity2.Comment);
-
-// var expected = entity2.Adapt();
-// var excludeProps = new[] {
-// nameof(ProcessMapPlanDrillingDto.Id),
-// nameof(ProcessMapPlanDrillingDto.Author),
-// nameof(ProcessMapPlanDrillingDto.Creation),
-// };
-// MatchHelper.Match(expected, actual, excludeProps);
-// }
-
-// [Fact]
-// public async Task Parse_returns_success()
-// {
-// //arrange
-// const string fileName = "ProcessMapPlanDrillingValid.xlsx";
-// var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName);
-
-// var streamPart = new StreamPart(stream, fileName, "application/octet-stream");
-
-// //act
-// var response = await client.Parse(IdWell, streamPart);
-
-// //assert
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-
-// var parserResult = response.Content;
-
-// Assert.NotNull(parserResult);
-// Assert.Single(parserResult.Item);
-// Assert.True(parserResult.IsValid);
-
-// var row = parserResult.Item.First();
-// var dtoActual = row.Item;
-
-// Assert.True(row.IsValid);
-
-// var excludeProps = new[] { nameof(ProcessMapPlanDrillingDto.IdWell) };
-// MatchHelper.Match(dto, dtoActual, excludeProps);
-// }
-
-// [Fact]
-// public async Task Parse_returns_success_for_result_with_warnings()
-// {
-// //arrange
-// const string fileName = "ProcessMapPlanDrillingInvalid.xlsx";
-// var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName);
-
-// var streamPart = new StreamPart(stream, fileName, "application/octet-stream");
-
-// //act
-// var response = await client.Parse(IdWell, streamPart);
-
-// Assert.Equal(HttpStatusCode.OK, response.StatusCode);
-
-// var parserResult = response.Content;
-
-// Assert.NotNull(parserResult);
-// Assert.False(parserResult.IsValid);
-// Assert.Single(parserResult.Warnings);
-// Assert.Single(parserResult.Item);
-
-// var row = parserResult.Item.First();
-
-// Assert.False(row.IsValid);
-// Assert.Equal(2, row.Warnings.Count());
-// }
-//}
\ No newline at end of file
+using AsbCloudApp.Requests;
+using AsbCloudDb.Model.ProcessMapPlan;
+using AsbCloudWebApi.IntegrationTests.Clients;
+using Mapster;
+using Microsoft.EntityFrameworkCore;
+using System.Net;
+using System.Reflection;
+using AsbCloudDb.Model.ProcessMaps;
+using AsbCloudWebApi.IntegrationTests.Data;
+using Refit;
+using Xunit;
+using AsbCloudApp.Data.ProcessMaps;
+using AsbCloudDb.Model;
+using AsbCloudApp.Data.User;
+using AsbCloudApp.Data;
+
+namespace AsbCloudWebApi.IntegrationTests.Controllers.ProcessMapPlan;
+
+public class ProcessMapPlanDrillingControllerTest : BaseIntegrationTest
+{
+ private const int IdWell = 1;
+
+ private readonly ProcessMapPlanDrillingDto dto = new()
+ {
+ Id = 0,
+
+ IdWell = IdWell,
+ Section = "Кондуктор",
+ IdWellSectionType = 3,
+ DepthStart = 0.5,
+ DepthEnd = 1.5,
+
+ IdMode = 1,
+ AxialLoadPlan = 2.718281,
+ AxialLoadLimitMax = 3.1415926,
+ DeltaPressurePlan = 4,
+ DeltaPressureLimitMax = 5,
+ TopDriveTorquePlan = 6,
+ TopDriveTorqueLimitMax = 7,
+ TopDriveSpeedPlan = 8,
+ TopDriveSpeedLimitMax = 9,
+ FlowPlan = 10,
+ FlowLimitMax = 11,
+ RopPlan = 12,
+ UsageSaub = 13,
+ UsageSpin = 14,
+ Comment = "это тестовая запись",
+ };
+ private readonly ProcessMapPlanDrilling entity = new()
+ {
+ Id = 0,
+ IdAuthor = 1,
+ IdEditor = null,
+ Creation = DateTimeOffset.UtcNow,
+ Obsolete = null,
+ IdState = AsbCloudDb.Model.ChangeLogAbstract.IdStateActual,
+ IdPrevious = null,
+
+ IdWell = IdWell,
+ IdWellSectionType = 1,
+ DepthStart = 0.5,
+ DepthEnd = 1.5,
+
+ IdMode = 1,
+ AxialLoadPlan = 2.718281,
+ AxialLoadLimitMax = 3.1415926,
+ DeltaPressurePlan = 4,
+ DeltaPressureLimitMax = 5,
+ TopDriveTorquePlan = 6,
+ TopDriveTorqueLimitMax = 7,
+ TopDriveSpeedPlan = 8,
+ TopDriveSpeedLimitMax = 9,
+ FlowPlan = 10,
+ FlowLimitMax = 11,
+ RopPlan = 12,
+ UsageSaub = 13,
+ UsageSpin = 14,
+ Comment = "это тестовая запись",
+ };
+
+ private IProcessMapPlanDrillingClient client;
+
+ public ProcessMapPlanDrillingControllerTest(WebAppFactoryFixture factory) : base(factory)
+ {
+ dbContext.CleanupDbSet();
+ client = factory.GetAuthorizedHttpClient>(string.Empty);
+ }
+
+ [Fact]
+ public async Task InsertRange_returns_success()
+ {
+ //arrange
+ var expected = dto.Adapt();
+
+ //act
+ var response = await client.InsertRange(dto.IdWell, new[] { expected });
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.Equal(1, response.Content);
+
+ var entity = dbContext
+ .Set()
+ .Where(p => p.AxialLoadPlan == dto.AxialLoadPlan)
+ .Where(p => p.AxialLoadLimitMax == dto.AxialLoadLimitMax)
+ .Where(p => p.Comment == dto.Comment)
+ .FirstOrDefault(p => p.IdWell == dto.IdWell);
+
+ Assert.NotNull(entity);
+
+ var actual = entity.Adapt>();
+ Assert.Equal(ProcessMapPlanBase.IdStateActual, actual.IdState);
+
+ var excludeProps = new[] {
+ nameof(ProcessMapPlanDrillingDto.Id),
+ nameof(ProcessMapPlanDrillingDto.Section)
+ };
+ MatchHelper.Match(expected, actual.Item, excludeProps);
+ }
+
+ [Fact]
+ public async Task InsertRange_returns_BadRequest_for_IdWellSectionType()
+ {
+ //arrange
+ var badDto = dto.Adapt();
+ badDto.IdWellSectionType = int.MaxValue;
+
+ //act
+ var response = await client.InsertRange(dto.IdWell, new[] { badDto });
+
+ //assert
+ Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
+ }
+
+ [Fact]
+ public async Task InsertRange_returns_BadRequest_for_IdMode()
+ {
+ //arrange
+ var badDto = dto.Adapt();
+ badDto.IdMode = int.MaxValue;
+
+ //act
+ var response = await client.InsertRange(dto.IdWell, new[] { badDto });
+
+ //assert
+ Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode);
+ }
+
+ [Fact]
+ public async Task ClearAndInsertRange_returns_success()
+ {
+ // arrange
+ var dbset = dbContext.Set();
+
+ var entry = dbset.Add(entity);
+ dbContext.SaveChanges();
+ entry.State = EntityState.Detached;
+
+ var startTime = DateTimeOffset.UtcNow;
+
+ // act
+ var result = await client.ClearAndInsertRange(entity.IdWell, new ProcessMapPlanDrillingDto[] { dto });
+
+ // assert
+ var doneTime = DateTimeOffset.UtcNow;
+ Assert.Equal(HttpStatusCode.OK, result.StatusCode);
+ Assert.Equal(2, result.Content);
+
+ var count = dbset.Count();
+ Assert.Equal(2, count);
+
+ var oldEntity = dbset.First(p => p.Id == entry.Entity.Id);
+ Assert.Equal(ProcessMapPlanBase.IdCleared, oldEntity.IdState);
+ Assert.Equal(1, oldEntity.IdEditor);
+ Assert.NotNull(oldEntity.Obsolete);
+ Assert.InRange(oldEntity.Obsolete.Value, startTime, doneTime);
+
+ var newEntity = dbset.First(p => p.Id != entry.Entity.Id);
+ Assert.Equal(ProcessMapPlanBase.IdStateActual, newEntity.IdState);
+ Assert.Equal(1, newEntity.IdAuthor);
+ Assert.Null(newEntity.IdEditor);
+ Assert.Null(newEntity.Obsolete);
+ Assert.Null(newEntity.IdPrevious);
+ Assert.InRange(newEntity.Creation, startTime, doneTime);
+ }
+
+ [Fact]
+ public async Task UpdateOrInsertRange_returns_success()
+ {
+ // arrange
+ var startTime = DateTimeOffset.UtcNow;
+
+ var dbset = dbContext.Set();
+ var user = dbContext.Set().First().Adapt();
+ user.Surname = "userSurname";
+ user.Email = "user@mail.domain";
+
+ var entry = dbset.Add(entity);
+ dbContext.SaveChanges();
+ entry.State = EntityState.Detached;
+
+ var dtoUpdate = dto.Adapt();
+ dtoUpdate.IdWell = 0;
+ dtoUpdate.Id = entry.Entity.Id;
+ dtoUpdate.Comment = "nebuchadnezzar";
+ dtoUpdate.DeltaPressureLimitMax++;
+ dtoUpdate.DeltaPressurePlan++;
+ dtoUpdate.FlowPlan++;
+ dtoUpdate.FlowLimitMax++;
+ dtoUpdate.RopPlan++;
+ dtoUpdate.AxialLoadPlan++;
+ dtoUpdate.AxialLoadLimitMax++;
+ dtoUpdate.DepthStart++;
+ dtoUpdate.DepthEnd++;
+ dtoUpdate.TopDriveSpeedPlan++;
+ dtoUpdate.TopDriveSpeedLimitMax++;
+ dtoUpdate.TopDriveTorquePlan++;
+ dtoUpdate.TopDriveTorqueLimitMax++;
+
+ var dtoInsert = dtoUpdate.Adapt();
+ dtoInsert.Id = 0;
+ dtoInsert.Comment = "nebuchad";
+ dtoInsert.DeltaPressureLimitMax++;
+ dtoInsert.DeltaPressurePlan++;
+ dtoInsert.FlowPlan++;
+ dtoInsert.FlowLimitMax++;
+ dtoInsert.RopPlan++;
+ dtoInsert.AxialLoadPlan++;
+ dtoInsert.AxialLoadLimitMax++;
+ dtoInsert.DepthStart++;
+ dtoInsert.DepthEnd++;
+ dtoInsert.TopDriveSpeedPlan++;
+ dtoInsert.TopDriveSpeedLimitMax++;
+ dtoInsert.TopDriveTorquePlan++;
+ dtoInsert.TopDriveTorqueLimitMax++;
+
+ // act
+ var result = await client.UpdateOrInsertRange(entity.IdWell, new ProcessMapPlanDrillingDto[] { dtoUpdate, dtoInsert });
+
+ // assert
+ var doneTime = DateTimeOffset.UtcNow;
+ Assert.Equal(HttpStatusCode.OK, result.StatusCode);
+ Assert.Equal(3, result.Content);
+
+ var count = dbset.Count();
+ Assert.Equal(3, count);
+
+ var oldEntity = dbset.First(p => p.Id == entry.Entity.Id);
+ Assert.Equal(ProcessMapPlanBase.IdStateReplaced, oldEntity.IdState);
+ Assert.Equal(1, oldEntity.IdEditor);
+ Assert.NotNull(oldEntity.Obsolete);
+ Assert.InRange(oldEntity.Obsolete.Value, startTime, doneTime);
+
+ var newEntity = dbset.First(p => p.Comment == dtoUpdate.Comment);
+ Assert.Equal(ProcessMapPlanBase.IdStateActual, newEntity.IdState);
+ Assert.Equal(1, newEntity.IdAuthor);
+ Assert.Null(newEntity.IdEditor);
+ Assert.Null(newEntity.Obsolete);
+ Assert.Equal(oldEntity.Id, newEntity.IdPrevious);
+ Assert.InRange(newEntity.Creation, startTime, doneTime);
+
+ var expected = dtoUpdate.Adapt();
+ var excludeProps = new[] {
+ nameof(ProcessMapPlanDrilling.Id),
+ nameof(ProcessMapPlanDrilling.IdWell),
+ nameof(ProcessMapPlanDrilling.Author),
+ nameof(ProcessMapPlanDrilling.IdAuthor),
+ nameof(ProcessMapPlanDrilling.Editor),
+ nameof(ProcessMapPlanDrilling.Creation),
+ };
+ MatchHelper.Match(expected, newEntity!, excludeProps);
+ }
+
+ [Fact]
+ public async Task DeleteRange_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ var entry = dbset.Add(entity);
+ dbContext.SaveChanges();
+ entry.State = EntityState.Detached;
+
+ var startTime = DateTimeOffset.UtcNow;
+
+ //act
+ var response = await client.DeleteRange(dto.IdWell, new[] { entry.Entity.Id });
+
+ //assert
+ var doneTime = DateTimeOffset.UtcNow;
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.Equal(1, response.Content);
+
+ var actual = dbContext
+ .Set()
+ .FirstOrDefault(p => p.Id == entry.Entity.Id);
+
+ Assert.NotNull(actual);
+ Assert.Equal(ProcessMapPlanBase.IdStateDeleted, actual.IdState);
+ Assert.Equal(1, actual.IdEditor);
+ Assert.NotNull(actual.Obsolete);
+ Assert.InRange(actual.Obsolete.Value, startTime, doneTime);
+ }
+
+
+ [Fact]
+ public async Task Clear_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ var entry = dbset.Add(entity);
+ dbContext.SaveChanges();
+ entry.State = EntityState.Detached;
+
+ var startTime = DateTimeOffset.UtcNow;
+
+ //act
+ var response = await client.Clear(dto.IdWell);
+
+ //assert
+ var doneTime = DateTimeOffset.UtcNow;
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.Equal(1, response.Content);
+
+ var actual = dbContext
+ .Set()
+ .FirstOrDefault(p => p.Id == entry.Entity.Id);
+
+ Assert.NotNull(actual);
+ Assert.Equal(ProcessMapPlanBase.IdCleared, actual.IdState);
+ Assert.Equal(1, actual.IdEditor);
+ Assert.NotNull(actual.Obsolete);
+ Assert.InRange(actual.Obsolete.Value, startTime, doneTime);
+ }
+
+ [Fact]
+ public async Task GetDatesChange_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ var entity2 = entity.Adapt();
+ entity2.Creation = entity.Creation.AddDays(1);
+ dbset.Add(entity);
+ dbset.Add(entity2);
+ dbContext.SaveChanges();
+ var timezoneHours = Defaults.Timezone.Hours;
+ var offset = TimeSpan.FromHours(timezoneHours);
+ var dates = new[] { entity.Creation, entity2.Creation }
+ .Select(d => d.ToOffset(offset))
+ .Select(d => new DateOnly(d.Year, d.Month, d.Day));
+
+ //act
+ var response = await client.GetDatesChange(dto.IdWell);
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.NotNull(response.Content);
+ Assert.Equal(2, response.Content.Count());
+ Assert.All(response.Content, d => dates.Contains(d));
+ }
+
+ [Fact]
+ public async Task Get_actual_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ dbset.Add(entity);
+
+ var entityDeleted = entity.Adapt();
+ entityDeleted.Creation = entity.Creation.AddDays(-1);
+ entityDeleted.Obsolete = entity.Creation;
+ entityDeleted.IdState = ProcessMapPlanBase.IdStateDeleted;
+ entityDeleted.IdEditor = 1;
+ entityDeleted.Comment = "nothing";
+ dbset.Add(entityDeleted);
+
+ dbContext.SaveChanges();
+
+ var response = await client.Get(dto.IdWell);
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.NotNull(response.Content);
+ Assert.Single(response.Content);
+
+ var actual = response.Content.First()!;
+
+ var expected = entity.Adapt()!;
+ var excludeProps = new[] {
+ nameof(ProcessMapPlanDrillingDto.Id),
+ };
+ MatchHelper.Match(expected, actual, excludeProps);
+ }
+
+ [Fact]
+ public async Task Get_at_moment_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ var now = DateTimeOffset.UtcNow;
+ var entityDeleted = entity.Adapt();
+ entityDeleted.Creation = now;
+ entityDeleted.Obsolete = now.AddMinutes(1);
+ entityDeleted.IdState = ProcessMapPlanBase.IdStateDeleted;
+ entityDeleted.IdEditor = 1;
+ entityDeleted.Comment = "nothing";
+ dbset.Add(entityDeleted);
+
+ var entityDeleted2 = entity.Adapt();
+ entityDeleted2.Creation = now.AddMinutes(1);
+ entityDeleted2.Obsolete = now.AddMinutes(2);
+ entityDeleted2.IdState = ProcessMapPlanBase.IdStateDeleted;
+ entityDeleted2.IdEditor = 1;
+ entityDeleted2.Comment = "nothing";
+ dbset.Add(entityDeleted2);
+
+ dbContext.SaveChanges();
+
+ //act
+ var response = await client.Get(dto.IdWell, now.AddMinutes(0.5));
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.NotNull(response.Content);
+ Assert.Single(response.Content);
+ }
+
+ [Fact]
+ public async Task Get_by_updated_from_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+ dbset.Add(entity);
+
+ var entity2 = entity.Adapt();
+ entity2.Obsolete = DateTimeOffset.UtcNow;
+ dbset.Add(entity2);
+
+ dbContext.SaveChanges();
+
+ //act
+ var response = await client.Get(Defaults.RemoteUid, DateTimeOffset.UtcNow.AddHours(-1));
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.NotNull(response.Content);
+ Assert.Equal(2, response.Content.Count());
+ }
+
+ [Fact]
+ public async Task Get_updated_returns_success()
+ {
+ //arrange
+ var dbset = dbContext.Set();
+
+ dbset.Add(entity);
+
+ var entity2 = entity.Adapt();
+ entity2.Creation = entity.Creation.AddHours(1);
+ entity2.Comment = "IdWellSectionType = 2";
+ dbset.Add(entity2);
+
+ var entity3 = entity.Adapt();
+ entity3.Obsolete = entity.Creation.AddHours(1);
+ entity3.Comment = "IdWellSectionType = 3";
+ dbset.Add(entity3);
+
+ dbContext.SaveChanges();
+
+ var timezoneHours = Defaults.Timezone.Hours;
+ var offset = TimeSpan.FromHours(timezoneHours);
+ var updateFrom = entity.Creation.ToOffset(offset).AddHours(0.5);
+
+ //act
+ var request = new ProcessMapPlanBaseRequest
+ {
+ UpdateFrom = updateFrom,
+ };
+ var response = await client.Get(dto.IdWell);
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+ Assert.NotNull(response.Content);
+ Assert.Equal(2, response.Content.Count());
+
+ var actual = response.Content
+ .First(p => p.Comment == entity2.Comment);
+
+ var expected = entity2.Adapt();
+ var excludeProps = new[] {
+ nameof(ProcessMapPlanDrillingDto.Id),
+ };
+ MatchHelper.Match(expected, actual, excludeProps);
+ }
+
+ [Fact]
+ public async Task Parse_returns_success()
+ {
+ //arrange
+ const string fileName = "ProcessMapPlanDrillingValid.xlsx";
+ var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName);
+
+ var streamPart = new StreamPart(stream, fileName, "application/octet-stream");
+
+ //act
+ var response = await client.Parse(IdWell, streamPart);
+
+ //assert
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+
+ var parserResult = response.Content;
+
+ Assert.NotNull(parserResult);
+ Assert.Single(parserResult.Item);
+ Assert.True(parserResult.IsValid);
+
+ var row = parserResult.Item.First();
+ var dtoActual = row.Item;
+
+ Assert.True(row.IsValid);
+
+ var excludeProps = new[] { nameof(ProcessMapPlanDrillingDto.IdWell) };
+ MatchHelper.Match(dto, dtoActual, excludeProps);
+ }
+
+ [Fact]
+ public async Task Parse_returns_success_for_result_with_warnings()
+ {
+ //arrange
+ const string fileName = "ProcessMapPlanDrillingInvalid.xlsx";
+ var stream = Assembly.GetExecutingAssembly().GetFileCopyStream(fileName);
+
+ var streamPart = new StreamPart(stream, fileName, "application/octet-stream");
+
+ //act
+ var response = await client.Parse(IdWell, streamPart);
+
+ Assert.Equal(HttpStatusCode.OK, response.StatusCode);
+
+ var parserResult = response.Content;
+
+ Assert.NotNull(parserResult);
+ Assert.False(parserResult.IsValid);
+ Assert.Single(parserResult.Warnings);
+ Assert.Single(parserResult.Item);
+
+ var row = parserResult.Item.First();
+
+ Assert.False(row.IsValid);
+ Assert.Equal(2, row.Warnings.Count());
+ }
+}
\ No newline at end of file
diff --git a/AsbCloudWebApi.IntegrationTests/Data/Defaults.cs b/AsbCloudWebApi.IntegrationTests/Data/Defaults.cs
index a3667662..ed2d87a0 100644
--- a/AsbCloudWebApi.IntegrationTests/Data/Defaults.cs
+++ b/AsbCloudWebApi.IntegrationTests/Data/Defaults.cs
@@ -11,6 +11,8 @@ namespace AsbCloudWebApi.IntegrationTests.Data
Hours = 1
};
+ public static string RemoteUid = "555-555-555";
+
public static Deposit[] Deposits => new Deposit[]
{
new()
@@ -39,7 +41,7 @@ namespace AsbCloudWebApi.IntegrationTests.Data
Timezone = Timezone,
Telemetry = new Telemetry
{
- RemoteUid = "555-555-555",
+ RemoteUid = RemoteUid,
TimeZone = Timezone
},
RelationCompaniesWells = new RelationCompanyWell[]