33 lines
1.1 KiB
C#
33 lines
1.1 KiB
C#
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..]));
|
|
}
|
|
}
|