using LehrerApp.Desktop.Services; using System.Text; using Xunit; namespace LehrerApp.Desktop.Tests; public sealed class CsvBuilderTests { [Fact] public void AddRow_MaskiertTrennzeichen_AnfuehrungszeichenUndZeilenumbrueche() { var csv = new CsvBuilder() .AddRow("Normal", "A;B", "Zitat \"wichtig\"", "Zeile 1\nZeile 2") .ToString(); Assert.Contains("Normal;\"A;B\"", csv); Assert.Contains("\"Zitat \"\"wichtig\"\"\"", csv); Assert.Contains("\"Zeile 1\nZeile 2\"", csv); } [Fact] public void CsvExportfile_BereinigtDateinameUndErgaenztEndungUndUtf8Bom() { var export = ExportFile.Csv("Export", "Auswertung/Chemie", "Änderung"); var bytes = export.Content.ToArray(); var preamble = new UTF8Encoding(encoderShouldEmitUTF8Identifier: true).GetPreamble(); Assert.Equal("Auswertung_Chemie.csv", export.SuggestedFileName); Assert.Equal(preamble, bytes[..preamble.Length]); Assert.Equal("Änderung", Encoding.UTF8.GetString(bytes[preamble.Length..])); } }