persistence/DD.Persistence.Database.Postgres.Test/UnitTestCheckHyperTables.cs

61 lines
1.8 KiB
C#

using DD.Persistence.Database.Entity;
using Mapster;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Npgsql;
namespace DD.Persistence.Database.Postgres.Test;
public class UnitTestCheckHyperTables : IClassFixture<DbFixture>
{
private ServiceProvider _serviceProvider;
private string _connectionString;
public UnitTestCheckHyperTables(DbFixture fixture)
{
_serviceProvider = fixture.serviceProvider;
_connectionString = fixture.connectionString;
}
[Fact]
public void CreateHyperTable_For_ParameterData_Return_Success()
{
var chunksCount = 0;
var entity = new ParameterData()
{
DiscriminatorId = Guid.NewGuid(),
ParameterId = 1,
Timestamp = DateTime.UtcNow,
Value = "123"
};
using (var context = _serviceProvider.GetService<PersistenceDbContext>()!)
{
context.ParameterData.Add(entity);
var entity2 = entity.Adapt<ParameterData>();
entity2.ParameterId = 2;
context.ParameterData.Add(entity2);
var entity3 = entity2.Adapt<ParameterData>();
entity3.ParameterId = 3;
entity3.Timestamp = DateTime.UtcNow.AddDays(2);
context.ParameterData.Add(entity3);
var entity4 = entity3.Adapt<ParameterData>();
entity4.ParameterId = 4;
context.ParameterData.Add(entity4);
context.SaveChanges();
string sql = "select count(*) from (select show_chunks('parameter_data'));";
var queryRow = context.Database.SqlQueryRaw<int>(sql);
chunksCount = queryRow.AsEnumerable().FirstOrDefault();
}
Assert.Equal(2, chunksCount);
}
}