Files
adas-core/adas-core.Test/Repositories/PumpArchiveRepositoryTest.cs

193 lines
5.7 KiB
C#

using adas_core.Domain.Enums;
using adas_core.Domain.Models;
using adas_core.Domain.Models.AppSettings;
using adas_core.Domain.Models.Pumps;
using adas_core.Infrastructure.Repositories;
using Microsoft.Extensions.Options;
using MongoDB.Driver;
using Options = Microsoft.Extensions.Options.Options;
namespace adas_core.Test.Repositories;
[TestFixture]
[Category("Integration")]
public class PumpArchiveRepositoryTest
{
[OneTimeSetUp]
public async Task Init()
{
_optionsApiSettings = Options.Create(_apiSettings);
var pump1 = new PumpObservation
{
Code = "Tile-6",
Time = Now,
Name = "g-1-pump-Tile-6",
Number = 2,
Total = 7,
TotalAux = 0,
Status = PumpEnum.Status.Infusing,
PumpMode = PumpEnum.Mode.Infusing,
InfusingStatus = PumpEnum.InfusingStatus.Infusing,
Pressure = new CommonPumpTypes.PumpValue
{
Value = 6,
Units = "mmHg"
},
DrugName = "Nutrición Parenteral",
Concentration = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml/ml"
},
DrugAmount = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml"
},
DiluentVolume = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml"
},
DoseRate = new CommonPumpTypes.PumpValue
{
Value = 27,
Units = "ml/h"
},
Rate = new CommonPumpTypes.PumpValue
{
Value = 27,
Units = "ml/h"
},
VolumeInfused = new CommonPumpTypes.PumpValue
{
Value = 127.52,
Units = "ml"
},
VolumeRemaining = new CommonPumpTypes.PumpValue
{
Value = 0.00001
},
TimeRemaining = new CommonPumpTypes.PumpValue
{
Value = 0,
Units = "min"
},
PatientWeight = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "kg"
},
AlarmType = PumpEnum.AlarmType.Attention,
GatewayNumber = 1,
IsAux = false,
IsInfusing = true
};
var pump2 = new PumpObservation
{
Code = "Tile-6",
Time = Now.AddDays(-10),
Name = "g-1-pump-Tile-6",
Number = 2,
Total = 7,
TotalAux = 0,
Status = PumpEnum.Status.Infusing,
PumpMode = PumpEnum.Mode.Infusing,
InfusingStatus = PumpEnum.InfusingStatus.Infusing,
Pressure = new CommonPumpTypes.PumpValue
{
Value = 6,
Units = "mmHg"
},
DrugName = "Nutrición Parenteral",
Concentration = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml/ml"
},
DrugAmount = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml"
},
DiluentVolume = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "ml"
},
DoseRate = new CommonPumpTypes.PumpValue
{
Value = 27,
Units = "ml/h"
},
Rate = new CommonPumpTypes.PumpValue
{
Value = 27,
Units = "ml/h"
},
VolumeInfused = new CommonPumpTypes.PumpValue
{
Value = 127.52,
Units = "ml"
},
VolumeRemaining = new CommonPumpTypes.PumpValue
{
Value = 0.00001
},
TimeRemaining = new CommonPumpTypes.PumpValue
{
Value = 0,
Units = "min"
},
PatientWeight = new CommonPumpTypes.PumpValue
{
Value = 1,
Units = "kg"
},
AlarmType = PumpEnum.AlarmType.Attention,
GatewayNumber = 1,
IsAux = false,
IsInfusing = true
};
await IntegrationDb.Database.DropCollectionAsync("archive_patients_pumpobservations");
await IntegrationDb.Database.CreateCollectionAsync("archive_patients_pumpobservations");
_repository = new PumpArchiveRepository(_optionsApiSettings, IntegrationDb.Database);
await _repository.InsertOneAsync(pump1);
await _repository.InsertOneAsync(pump2);
Assert.That(await _repository.Collection.CountDocumentsAsync(_ => true), Is.EqualTo(2));
}
private PumpArchiveRepository _repository;
private readonly ApiSettings _apiSettings = new()
{
ArchivePatientsPumpobservations = "archive_patients_pumpobservations"
};
private IOptions<ApiSettings> _optionsApiSettings;
private static readonly DateTime Now = DateTime.Now;
[Test]
public async Task DeleteBeforeDate()
{
var result = await _repository.Collection.FindAsync(_ => true);
Assert.That(result, Is.Not.Null);
Assert.That(result.ToList(), Has.Count.GreaterThan(1));
await _repository.DeleteBeforeDate(Now.AddDays(-1));
var resultDelete = await _repository.Collection.FindAsync(_ => true);
Assert.That(resultDelete, Is.Not.Null);
Assert.That(resultDelete.ToList(), Has.Count.EqualTo(1));
}
}