using Xunit; using LehrerApp.WebUntis; namespace LehrerApp.WebUntis.Tests; public sealed class WebUntisClassRegisterEventReportParserTests { [Fact] public void Parse_UebernimmtAlleFelderUndZweistelligesJahr() { const string report = "\uFEFFKlasse\tDatum\tFach\tName\tBenutzer\tEintragskategorie\tKategoriegruppe\tText\r\n" + "10c\t24.08.26\tEng_G\tMuster Erika\ttownsend\tFehlende HA\tNegativ\tKeine Hausaufgaben gemacht.\r\n"; var entry = Assert.Single(WebUntisClassRegisterEventReportParser.Parse(report)); Assert.Equal("10c", entry.ClassName); Assert.Equal(20260824, entry.Date); Assert.Equal("Eng_G", entry.Subject); Assert.Equal("Muster Erika", entry.StudentName); Assert.Equal("townsend", entry.TeacherUsername); Assert.Equal("Fehlende HA", entry.CategoryName); Assert.Equal("Negativ", entry.CategoryGroup); Assert.Equal("Keine Hausaufgaben gemacht.", entry.Text); } [Fact] public void Parse_UeberspringtLeereZeilen() { const string report = "Klasse\tDatum\tFach\tName\tBenutzer\tEintragskategorie\tKategoriegruppe\tText\r\n" + "6a\t24.08.26\tNAT\tMuster Max\thedtrich\tMitarb. über Erwart.\tPositiv\tGut.\r\n" + "\t\t\t\t\t\t\t\r\n"; var entry = Assert.Single(WebUntisClassRegisterEventReportParser.Parse(report)); Assert.Equal("Muster Max", entry.StudentName); } [Fact] public void Parse_LehntUngueltigesDatumAb() { const string report = "Klasse\tDatum\tFach\tName\tBenutzer\tEintragskategorie\tKategoriegruppe\tText\r\n" + "6a\tkein-datum\tNAT\tMuster Max\thedtrich\tMitarb. über Erwart.\tPositiv\tGut.\r\n"; Assert.Throws(() => WebUntisClassRegisterEventReportParser.Parse(report)); } }