using Omika.App.Controls; using Xunit; namespace Omika.Tests.Controls; /// /// 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é. /// 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); } }