Premiere commit - Omika

This commit is contained in:
2026-10-23 18:46:50 +02:00
commit 8ea76c1b24
2155 changed files with 984301 additions and 0 deletions
@@ -0,0 +1,87 @@
using Omika.Core.Contracts.Common;
using Omika.Core.Contracts.Planning;
namespace Omika.Tests.Contracts;
/// <summary>
/// Tests des contrats Planning (rendez-vous, participants, annulation) et de
/// leur neutralité totale vis-à-vis des tables physiques HFSQL.
/// </summary>
public class RendezVousContractTests
{
[Fact]
public void RendezVousDetailsDto_IsFreeOfPhysicalNames()
{
var dto = new RendezVousDetailsDto
{
Id = "RDV-001",
Titre = "Visite technique",
Debut = new DateTime(2026, 2, 1, 9, 0, 0),
Fin = new DateTime(2026, 2, 1, 11, 0, 0)
};
string[] forbidden =
[
"Planning_RDV", "RDV_Planning", "PL_PKID", "RDP_GUID", "PKID"
];
foreach (string name in forbidden)
{
Assert.DoesNotContain(name, dto.GetType().Name);
Assert.DoesNotContain(name, dto.Titre);
}
}
[Fact]
public void RendezVousDetailsDto_CanCarryCollaborateursAndContacts()
{
var dto = new RendezVousDetailsDto
{
Id = "RDV-001",
Collaborateurs =
[
new AffectationCollaborateurDto { CollaborateurId = "COL-1", Responsable = true },
new AffectationCollaborateurDto { CollaborateurId = "COL-2", TempsValide = true }
],
Contacts = [new ParticipantRendezVousDto { ContactId = "CT-9", PresenceConfirmee = true }]
};
Assert.Equal(2, dto.Collaborateurs.Count);
Assert.True(dto.Collaborateurs[0].Responsable);
Assert.Single(dto.Contacts);
Assert.True(dto.Contacts[0].PresenceConfirmee);
}
[Fact]
public void RendezVousDetailsDto_CanRepresentAnnulation()
{
var dto = new RendezVousDetailsDto
{
Id = "RDV-002",
Annulation = new AnnulationRendezVousDto
{
DateAnnulation = new DateTime(2026, 2, 1, 8, 0, 0),
Motif = new ReferenceValueDto { Label = "Client indisponible" },
Commentaire = "Reporter la visite"
}
};
Assert.NotNull(dto.Annulation);
Assert.Equal("Client indisponible", dto.Annulation.Motif.Label);
}
[Fact]
public void CreateRendezVousRequest_IsIdenticalForBothSchemas()
{
// Le même contrat sert pour l'ancien et le nouveau schéma.
var request = new CreateRendezVousRequest
{
Titre = "RDV",
Debut = new DateTime(2026, 3, 1, 9, 0, 0),
Fin = new DateTime(2026, 3, 1, 10, 0, 0)
};
Assert.Equal("RDV", request.Titre);
Assert.Equal(new DateTime(2026, 3, 1, 10, 0, 0), request.Fin);
}
}