71 lines
2.3 KiB
C#
71 lines
2.3 KiB
C#
using Omika.Core.Contracts.Configuration;
|
|
|
|
namespace Omika.Tests.Contracts;
|
|
|
|
/// <summary>
|
|
/// Tests du parseur de paramètres métier, centrés sur la conversion des
|
|
/// couleurs WinDev (<c>sCouleur</c>, entier <c>0xRRGGBB</c> sérialisé en
|
|
/// décimal) vers le format hexadécimal <c>#RRGGBB</c> utilisé par l'UI mobile.
|
|
/// </summary>
|
|
public class ParametreMetierParametresParserTests
|
|
{
|
|
[Theory]
|
|
[InlineData("5288012", "#50B04C")] // « Fait » (vert)
|
|
[InlineData("15112707", "#E69A03")] // « Confirmé » (orange)
|
|
[InlineData("1393623", "#1543D7")] // « Intervention » (bleu)
|
|
[InlineData("0", "#000000")]
|
|
[InlineData("16777215", "#FFFFFF")]
|
|
public void ToHexColor_ConvertitEntierRgbEnHex(string winDevColor, string expected)
|
|
{
|
|
Assert.Equal(expected, ParametreMetierParametresParser.ToHexColor(winDevColor));
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(null)]
|
|
[InlineData("")]
|
|
[InlineData(" ")]
|
|
[InlineData("abc")]
|
|
[InlineData("-1")]
|
|
[InlineData("-5288012")]
|
|
public void ToHexColor_ValeurInvalideOuSysteme_RetourneNull(string? winDevColor)
|
|
{
|
|
Assert.Null(ParametreMetierParametresParser.ToHexColor(winDevColor));
|
|
}
|
|
|
|
[Fact]
|
|
public void ToHexColor_AccepteUnNombreJsonSansDecimale()
|
|
{
|
|
// Le JSON WinDev peut sérialiser l'entier en nombre (sans guillemets).
|
|
Assert.Equal("#50B04C", ParametreMetierParametresParser.ToHexColor("5288012"));
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseStatutRdv_ExtraitLaCouleur()
|
|
{
|
|
StatutRdvParametresDto? statut =
|
|
ParametreMetierParametresParser.ParseStatutRdv("{\"sCouleur\":\"15112707\"}");
|
|
|
|
Assert.NotNull(statut);
|
|
Assert.Equal("15112707", statut.Couleur);
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseStatutRdv_JsonVide_RetourneNull()
|
|
{
|
|
Assert.Null(ParametreMetierParametresParser.ParseStatutRdv(""));
|
|
Assert.Null(ParametreMetierParametresParser.ParseStatutRdv(null));
|
|
Assert.Null(ParametreMetierParametresParser.ParseStatutRdv("not-json"));
|
|
}
|
|
|
|
[Fact]
|
|
public void ParseTypeRdv_ExtraitLaCouleur()
|
|
{
|
|
TypeRdvParametresDto? type =
|
|
ParametreMetierParametresParser.ParseTypeRdv("{\"sCouleur\":\"1393623\",\"Envoi_mobile\":true}");
|
|
|
|
Assert.NotNull(type);
|
|
Assert.Equal("1393623", type.Couleur);
|
|
Assert.True(type.EnvoiMobile);
|
|
}
|
|
}
|