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,124 @@
using Omika.Core.Contracts.Common;
using Omika.Core.Contracts.Organisation;
namespace Omika.Tests.Contracts;
/// <summary>
/// Tests des contrats Organisation (collaborateurs) et de leur neutralité totale
/// vis-à-vis des tables physiques HFSQL.
/// </summary>
public class CollaborateurContractTests
{
[Fact]
public void CollaborateurDetailsDto_IsFreeOfPhysicalNames()
{
var dto = new CollaborateurDetailsDto
{
Id = "COL-001",
Nom = "Dupont",
Prenom = "Jean"
};
string[] forbidden =
[
"CL_PKID", "PKID", "CL_Nom", "CL_Prenom"
];
foreach (string name in forbidden)
{
Assert.DoesNotContain(name, dto.GetType().Name);
Assert.DoesNotContain(name, dto.Nom);
}
}
[Fact]
public void CollaborateurDetailsDto_CanCarryCoordonnees()
{
var dto = new CollaborateurDetailsDto
{
Id = "COL-001",
Coordonnees = new ContactDetailsDto { Email = "jean@example.com", Phone = "0102030405" }
};
Assert.Equal("jean@example.com", dto.Coordonnees.Email);
Assert.Equal("0102030405", dto.Coordonnees.Phone);
}
[Fact]
public void CollaborateurDetailsDto_CanCarryReferences()
{
var dto = new CollaborateurDetailsDto
{
Id = "COL-001",
Civilite = new ReferenceValueDto { Key = "M", Label = "M." },
Statut = new ReferenceValueDto { Key = "ACTIF", Label = "Actif" }
};
Assert.Equal("M.", dto.Civilite.Label);
Assert.Equal("Actif", dto.Statut.Label);
}
[Fact]
public void CollaborateurSummaryDto_IsFreeOfPhysicalNames()
{
var dto = new CollaborateurSummaryDto
{
Id = "COL-001",
NomAffiche = "Jean Dupont"
};
string[] forbidden =
[
"CL_PKID", "PKID", "CL_Nom", "CL_Prenom"
];
foreach (string name in forbidden)
{
Assert.DoesNotContain(name, dto.GetType().Name);
Assert.DoesNotContain(name, dto.NomAffiche);
}
}
[Fact]
public void CreateCollaborateurRequest_IsIdenticalForBothSchemas()
{
// Le même contrat sert pour l'ancien et le nouveau schéma.
var request = new CreateCollaborateurRequest
{
Code = "JD",
Nom = "Dupont",
Prenom = "Jean"
};
Assert.Equal("JD", request.Code);
Assert.Equal("Dupont", request.Nom);
}
[Fact]
public void UpdateCollaborateurRequest_IsIdenticalForBothSchemas()
{
var request = new UpdateCollaborateurRequest
{
Nom = "Martin",
Actif = false
};
Assert.Equal("Martin", request.Nom);
Assert.False(request.Actif);
}
[Fact]
public void SearchCollaborateurRequest_IsIdenticalForBothSchemas()
{
var request = new SearchCollaborateurRequest
{
Search = "Dupont",
EquipeId = "equipe-1",
Actif = true
};
Assert.Equal("Dupont", request.Search);
Assert.Equal("equipe-1", request.EquipeId);
Assert.True(request.Actif);
}
}