82 lines
2.7 KiB
C#
82 lines
2.7 KiB
C#
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);
|
|
}
|
|
}
|