Files
adas-core/adas-core.Test/Repositories/ConfigPumpsRepositoryTest.cs
T

88 lines
2.3 KiB
C#

using System.Diagnostics;
using adas_core.Domain.Models.AppSettings;
using adas_core.Domain.Models.MongoModels;
using adas_core.Infrastructure.Repositories;
using Microsoft.Extensions.Options;
using Options = Microsoft.Extensions.Options.Options;
namespace adas_core.Test.Repositories;
[TestFixture]
[Category("Integration")]
public class ConfigPumpsRepositoryTest
{
[OneTimeSetUp]
public async Task Init()
{
_optionsApiSettings = Options.Create(_apiSettings);
var configPumpItem1 = new ConfigPumpItem();
var configPumpItem2 = new ConfigPumpItem();
var configPumps = new ConfigPumps
{
Id = "PV1",
Items = [configPumpItem1, configPumpItem2]
};
await IntegrationDb.Database.DropCollectionAsync("config_pumps");
await IntegrationDb.Database.CreateCollectionAsync("config_pumps");
_repository = new ConfigPumpsRepository(_optionsApiSettings, IntegrationDb.Database);
await _repository.InsertOneAsync(configPumps);
}
private ConfigPumpsRepository _repository;
private readonly ApiSettings _apiSettings = new()
{
ConfigPumps = "config_pumps"
};
private IOptions<ApiSettings> _optionsApiSettings;
[Test]
public async Task FindById_Find_id_Return_List()
{
var result = await _repository.FindById("PV1");
Assert.That(result, Is.Not.Null);
}
[Test]
public async Task FindAsync_not_Find_id_Return_Empty_List()
{
var result = await _repository.FindById("PV2");
Assert.That(result, Is.Null);
}
[Test]
public async Task Insert_PumpConfig_returns2()
{
var configPumpItem1 = new ConfigPumpItem();
var configPumpItem2 = new ConfigPumpItem();
var newPumpConfig = new ConfigPumps
{
Id = "PV2",
Items = [configPumpItem1, configPumpItem2]
};
await _repository.InsertOneAsync(newPumpConfig);
var result = await _repository.GetAllConfigs();
Assert.That(result, Has.Count.EqualTo(2));
var pumpCfgInserted = await _repository.FindById(newPumpConfig.Id);
Assert.That(pumpCfgInserted, Is.Not.EqualTo(null));
Debug.Assert(pumpCfgInserted != null, nameof(pumpCfgInserted) + " != null");
await _repository.DeleteConfig(pumpCfgInserted);
}
}