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 { 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()!) { context.ParameterData.Add(entity); var entity2 = entity.Adapt(); entity2.ParameterId = 2; context.ParameterData.Add(entity2); var entity3 = entity2.Adapt(); entity3.ParameterId = 3; entity3.Timestamp = DateTime.UtcNow.AddDays(2); context.ParameterData.Add(entity3); var entity4 = entity3.Adapt(); entity4.ParameterId = 4; context.ParameterData.Add(entity4); context.SaveChanges(); string sql = "select count(*) from (select show_chunks('parameter_data'));"; var queryRow = context.Database.SqlQueryRaw(sql); chunksCount = queryRow.AsEnumerable().FirstOrDefault(); } Assert.Equal(2, chunksCount); } }