Premiere commit - Omika
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user