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

71 lines
2.0 KiB
C#
Raw Normal View History

using DD.Persistence.Database.Entity;
using Mapster;
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 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();
}
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);
}
}