46 lines
1.9 KiB
C#
46 lines
1.9 KiB
C#
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<InvalidDataException>(() => WebUntisClassRegisterEventReportParser.Parse(report));
|
|
}
|
|
}
|