using DD.Persistence.Database.Entity; using Mapster; using Microsoft.Extensions.DependencyInjection; using Npgsql; namespace DD.Persistence.Database.Postgres.Test; public class UnitTest1 : IClassFixture { private ServiceProvider _serviceProvider; private string _connectionString; public UnitTest1(DbFixture fixture) { _serviceProvider = fixture.serviceProvider; _connectionString = fixture.connectionString; } [Fact] public void CreateHyperTable() { 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(); } var chunksCount = 0; using (var connection = new NpgsqlConnection(_connectionString)) { connection.Open(); string sql = "select count(*) from (select show_chunks('parameter_data'));"; using (var command = new NpgsqlCommand(sql, connection)) { using (var reader = command.ExecuteReader()) { while (reader.Read()) { chunksCount += reader.GetInt32(0); } } } } Assert.Equal(2, chunksCount); } }