48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using Omika.Core.Compatibility;
|
|
|
|
namespace Omika.Tests.Compatibility;
|
|
|
|
/// <summary>
|
|
/// Tests de <see cref="SchemaCapabilities"/> : le code métier peut savoir si une
|
|
/// fonctionnalité est disponible selon la version de base, sans connaître la
|
|
/// structure physique.
|
|
/// </summary>
|
|
public class SchemaCapabilitiesTests
|
|
{
|
|
[Fact]
|
|
public void Batik_DoesNotSupportNewAppointmentModel()
|
|
{
|
|
SchemaCapabilities batik = SchemaCapabilities.ForBatik();
|
|
|
|
Assert.Equal(DatabaseSchemaVersion.Batik, batik.Version);
|
|
Assert.False(batik.SupportsNewAppointmentModel);
|
|
Assert.False(batik.SupportsBusinessKeys);
|
|
Assert.False(batik.SupportsRoles);
|
|
}
|
|
|
|
[Fact]
|
|
public void Omika_SupportsNewFeatures()
|
|
{
|
|
SchemaCapabilities omika = SchemaCapabilities.ForOmika();
|
|
|
|
Assert.Equal(DatabaseSchemaVersion.Omika, omika.Version);
|
|
Assert.True(omika.SupportsNewAppointmentModel);
|
|
Assert.True(omika.SupportsBusinessKeys);
|
|
Assert.True(omika.SupportsEntityGuids);
|
|
Assert.True(omika.SupportsRoles);
|
|
Assert.True(omika.SupportsModificationTracking);
|
|
Assert.True(omika.SupportsReportModels);
|
|
Assert.True(omika.SupportsDocumentFields);
|
|
}
|
|
|
|
[Fact]
|
|
public void Capabilities_AreConfigurablePerInstance()
|
|
{
|
|
var custom = SchemaCapabilities.ForBatik() with { SupportsRoles = true };
|
|
|
|
Assert.True(custom.SupportsRoles);
|
|
// L'instance de base n'est pas mutée (record immutable).
|
|
Assert.False(SchemaCapabilities.ForBatik().SupportsRoles);
|
|
}
|
|
}
|