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,81 @@
using Omika.Core.Contracts.Common;
using Omika.Core.Contracts.Interventions;
namespace Omika.Tests.Contracts;
/// <summary>
/// Tests des contrats Interventions (résumé, détail, création, modification,
/// recherche) et de leur neutralité vis-à-vis du stockage.
/// </summary>
public class InterventionContractTests
{
[Fact]
public void InterventionSummaryDto_ContainsOnlyListFields()
{
var summary = new InterventionSummaryDto
{
Id = "IN-001",
Reference = "2026-0001",
Titre = "Dépannage chaudière",
Etat = "En cours",
Type = "Maintenance",
DatePrevueDebut = new DateTime(2026, 1, 15, 8, 0, 0)
};
Assert.Equal("2026-0001", summary.Reference);
Assert.Equal("Maintenance", summary.Type);
}
[Fact]
public void InterventionDetailsDto_HoldsActionsCompteRendusAndReferences()
{
var details = new InterventionDetailsDto
{
Id = "IN-001",
Etat = new ReferenceValueDto { Label = "En cours" },
CollaborateurIds = ["COL-1", "COL-2"],
Actions = [new ActionInterventionDto { Description = "Commande pièce", Terminee = true }],
ComptesRendus = [new CompteRenduDto { Contenu = "Chaudière relancée" }]
};
Assert.Equal(2, details.CollaborateurIds.Count);
Assert.Single(details.Actions);
Assert.True(details.Actions[0].Terminee);
Assert.Equal("Chaudière relancée", details.ComptesRendus[0].Contenu);
}
[Fact]
public void CreateInterventionRequest_DoesNotAcceptPhysicalFields()
{
var request = new CreateInterventionRequest { Titre = "Intervention", Reference = "2026-0002" };
foreach (var property in typeof(CreateInterventionRequest).GetProperties())
{
Assert.DoesNotContain("Pkid", property.Name, StringComparison.OrdinalIgnoreCase);
Assert.DoesNotContain("HfSql", property.Name, StringComparison.OrdinalIgnoreCase);
}
}
[Fact]
public void UpdateInterventionRequest_AcceptsEtatAndDates()
{
var request = new UpdateInterventionRequest
{
Titre = "Renommage",
Etat = new ReferenceValueDto { Label = "Terminé" },
DateReelleFin = new DateTime(2026, 1, 16, 12, 0, 0)
};
Assert.Equal("Terminé", request.Etat.Label);
Assert.NotNull(request.DateReelleFin);
}
[Fact]
public void SearchInterventionsRequest_HasNoPhysicalPrefix()
{
var request = new SearchInterventionsRequest { Titre = "chaudière", CollaborateurId = "COL-1" };
Assert.Equal("chaudière", request.Titre);
Assert.Equal("COL-1", request.CollaborateurId);
}
}