Files
Omika/tests/Omika.Tests/Controls/DictationTextMergerTests.cs
T
2026-10-23 18:46:50 +02:00

65 lines
2.4 KiB
C#

using Omika.App.Controls;
using Xunit;
namespace Omika.Tests.Controls;
/// <summary>
/// Règle d'ajout du texte dicté : le texte reconnu est toujours AJOUTÉ À LA FIN
/// du contenu du champ, sans jamais écraser ce qui était déjà saisi ou dicté.
/// </summary>
public sealed class DictationTextMergerTests
{
[Fact]
public void ChampVide_RecoitLaDictee()
=> Assert.Equal("Remplacement de la pièce", DictationTextMerger.Append(null, "Remplacement de la pièce"));
[Fact]
public void ChampVideAvecEspaces_RecoitLaDicteeSeule_Detoureee()
=> Assert.Equal("Paris", DictationTextMerger.Append(" ", " Paris "));
[Fact]
public void TexteExistant_AjouteAvecUneEspace()
=> Assert.Equal(
"Travaux réalisés. Remplacement de la pièce.",
DictationTextMerger.Append("Travaux réalisés.", "Remplacement de la pièce."));
[Fact]
public void TexteQuiFinitParUneEspace_PasDeDoubleEspace()
=> Assert.Equal("Travaux réalisés. Remplacement.", DictationTextMerger.Append("Travaux réalisés. ", "Remplacement."));
[Fact]
public void TexteQuiFinitParUnRetourLigne_PasDEspaceAjoutee()
=> Assert.Equal("Ligne 1\nLigne 2", DictationTextMerger.Append("Ligne 1\n", "Ligne 2"));
[Fact]
public void DicteeVide_NeModifieRien()
=> Assert.Equal("Travaux", DictationTextMerger.Append("Travaux", " "));
[Fact]
public void DicteeNulle_NeModifieRien()
=> Assert.Equal("Travaux", DictationTextMerger.Append("Travaux", null));
[Fact]
public void DicteeNulleSurChampVide_RendUneChaineVide()
=> Assert.Equal(string.Empty, DictationTextMerger.Append(null, null));
[Fact]
public void DicteeAvecRetoursDeBord_EstDetoureee()
=> Assert.Equal("Note", DictationTextMerger.Append(string.Empty, " Note\n"));
[Fact]
public void DicteeMultiLignes_ConserveLesRetoursInternes()
=> Assert.Equal("A\nB", DictationTextMerger.Append(null, "A\nB"));
[Fact]
public void AjoutsSuccessifs_NePerdentAucunePhrase()
{
// Cas d'usage réel : un compte rendu dicté en trois fois.
string texte = DictationTextMerger.Append(null, "Première phrase.");
texte = DictationTextMerger.Append(texte, "Deuxième phrase.");
texte = DictationTextMerger.Append(texte, "Troisième phrase.");
Assert.Equal("Première phrase. Deuxième phrase. Troisième phrase.", texte);
}
}