66 lines
2.0 KiB
C#
66 lines
2.0 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;
|
|
|
|
public UnitTestCheckHyperTables(DbFixture fixture)
|
|
{
|
|
_serviceProvider = fixture.serviceProvider;
|
|
}
|
|
|
|
[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;
|
|
context.ParameterData.Add(entity3);
|
|
|
|
var entity4 = entity3.Adapt<ParameterData>();
|
|
entity4.ParameterId = 4;
|
|
context.ParameterData.Add(entity4);
|
|
|
|
var entity5 = entity3.Adapt<ParameterData>();
|
|
entity5.Timestamp = DateTime.UtcNow.AddDays(1).AddHours(1);
|
|
context.ParameterData.Add(entity5);
|
|
|
|
var entity6 = entity3.Adapt<ParameterData>();
|
|
entity6.DiscriminatorId = Guid.CreateVersion7();
|
|
context.ParameterData.Add(entity6);
|
|
|
|
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(5, chunksCount);
|
|
}
|
|
}
|