125 lines
3.2 KiB
C#
125 lines
3.2 KiB
C#
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);
|
|
}
|
|
}
|