Premiere commit - Omika
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
using Omika.Core.Compatibility;
|
||||
using Omika.Core.Domain.Entities.Planning;
|
||||
using BatikModels = Omika.Data.HfSql.Models.Batik;
|
||||
using BatikMappers = Omika.Data.Mapping.Batik;
|
||||
|
||||
namespace Omika.Tests.Mapping;
|
||||
|
||||
/// <summary>
|
||||
/// Tests unitaires du mapping Batik des valeurs de référentiel d'annulation d'un
|
||||
/// rendez-vous. Aucune base réelle : uniquement des objets en mémoire.
|
||||
///
|
||||
/// En Batik, l'origine et le motif d'annulation sont stockés sous forme
|
||||
/// d'identifiants numériques (<c>PL_IDOrigineAnnul</c> / <c>PL_IDMotifAnnul</c> →
|
||||
/// <c>PA_PKID</c>). Ils doivent être résolus dans le référentiel ParametreMetier,
|
||||
/// sans quoi la fiche du rendez-vous n'affiche aucun libellé.
|
||||
/// </summary>
|
||||
public class BatikRendezVousMapperTests
|
||||
{
|
||||
[Fact]
|
||||
public void Map_AnnulationAvecReferentiel_LibellesOrigineEtMotifResolusParPkId()
|
||||
{
|
||||
var row = new BatikModels.PlanningRDVRow
|
||||
{
|
||||
PLPKID = 42,
|
||||
PLDateDebut = new DateTime(2026, 8, 19, 9, 0, 0),
|
||||
PLDateFin = new DateTime(2026, 8, 19, 10, 0, 0),
|
||||
PLIDOrigineAnnul = 2000UL,
|
||||
PLIDMotifAnnul = 3000UL
|
||||
};
|
||||
|
||||
var references = new Dictionary<long, BatikModels.ParametreMetierRow>
|
||||
{
|
||||
[2000L] = new BatikModels.ParametreMetierRow
|
||||
{
|
||||
PAPKID = 2000L,
|
||||
PACode = "34",
|
||||
PALibelle = "Externe : Client"
|
||||
},
|
||||
[3000L] = new BatikModels.ParametreMetierRow
|
||||
{
|
||||
PAPKID = 3000L,
|
||||
PACode = "35",
|
||||
PALibelle = "Absent"
|
||||
}
|
||||
};
|
||||
|
||||
CanonicalMappingResult<RendezVous> mapped = BatikMappers.BatikRendezVousMapper.Map(row, references);
|
||||
|
||||
Assert.NotNull(mapped.Value.Annulation);
|
||||
Assert.Equal(2000L, mapped.Value.Annulation!.Origine!.LegacyId);
|
||||
Assert.Equal("Externe : Client", mapped.Value.Annulation.Origine!.Label);
|
||||
Assert.Equal(3000L, mapped.Value.Annulation.Motif!.LegacyId);
|
||||
Assert.Equal("Absent", mapped.Value.Annulation.Motif!.Label);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Map_AnnulationSansReferentiel_ConserveLIdentifiantSansInventerDeLibelle()
|
||||
{
|
||||
var row = new BatikModels.PlanningRDVRow
|
||||
{
|
||||
PLPKID = 43,
|
||||
PLDateDebut = new DateTime(2026, 8, 19, 9, 0, 0),
|
||||
PLDateFin = new DateTime(2026, 8, 19, 10, 0, 0),
|
||||
PLIDMotifAnnul = 3000UL
|
||||
};
|
||||
|
||||
CanonicalMappingResult<RendezVous> mapped = BatikMappers.BatikRendezVousMapper.Map(row, null);
|
||||
|
||||
Assert.NotNull(mapped.Value.Annulation);
|
||||
Assert.Equal(3000L, mapped.Value.Annulation!.Motif!.LegacyId);
|
||||
Assert.True(string.IsNullOrEmpty(mapped.Value.Annulation.Motif!.Label));
|
||||
Assert.Null(mapped.Value.Annulation.Origine);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Map_SansAnnulation_AucuneAnnulation()
|
||||
{
|
||||
var row = new BatikModels.PlanningRDVRow
|
||||
{
|
||||
PLPKID = 44,
|
||||
PLDateDebut = new DateTime(2026, 8, 19, 9, 0, 0),
|
||||
PLDateFin = new DateTime(2026, 8, 19, 10, 0, 0)
|
||||
};
|
||||
|
||||
CanonicalMappingResult<RendezVous> mapped = BatikMappers.BatikRendezVousMapper.Map(row, null);
|
||||
|
||||
Assert.Null(mapped.Value.Annulation);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user