Untis-API: Fehlzeiten abgleich
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
using Xunit;
|
||||
using LehrerApp.WebUntis;
|
||||
|
||||
namespace LehrerApp.WebUntis.Tests;
|
||||
|
||||
public sealed class WebUntisLessonAbsenceParserTests
|
||||
{
|
||||
[Fact]
|
||||
public void Parse_UebernimmtAlleFelderUndZweistelligesJahr()
|
||||
{
|
||||
const string report = "\uFEFFSchüler*innen\tDatum\tFehlstd.\tUnentsch. Fehlstd.\tFehlmin.\tUnentsch. Fehlmin.\tZeit\tAbwesenheitsgrund\tENr\tErledigt\tAbwesenheit zählt\r\n" +
|
||||
"Erika Mustermann\t09.12.25\t1\t1\t45\t45\t09:40-10:25\tKrank\t(185120)\t09.12.25\ttrue\r\n";
|
||||
|
||||
var absence = Assert.Single(WebUntisLessonAbsenceParser.Parse(report));
|
||||
|
||||
Assert.Equal("Erika Mustermann", absence.StudentName);
|
||||
Assert.Equal(20251209, absence.Date);
|
||||
Assert.Equal(1, absence.AbsentPeriods);
|
||||
Assert.Equal(1, absence.UnexcusedAbsentPeriods);
|
||||
Assert.Equal(45, absence.AbsentMinutes);
|
||||
Assert.Equal(45, absence.UnexcusedAbsentMinutes);
|
||||
Assert.Equal(940, absence.StartTime);
|
||||
Assert.Equal(1025, absence.EndTime);
|
||||
Assert.Equal("Krank", absence.Reason);
|
||||
Assert.Equal(185120, absence.ExternKey);
|
||||
Assert.True(absence.ExternKeyInParentheses);
|
||||
Assert.Equal("09.12.25", absence.HandledOn);
|
||||
Assert.True(absence.Counts);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_AkzeptiertExterneSchuelerkennungOhneKlammern()
|
||||
{
|
||||
const string report = "Schüler*innen\tDatum\tFehlstd.\tUnentsch. Fehlstd.\tFehlmin.\tUnentsch. Fehlmin.\tZeit\tAbwesenheitsgrund\tENr\tErledigt\tAbwesenheit zählt\r\n" +
|
||||
"Max Muster\t27.01.26\t1\t0\t45\t0\t10:25-11:10\t\t178156\t\tfalse\r\n";
|
||||
|
||||
var absence = Assert.Single(WebUntisLessonAbsenceParser.Parse(report));
|
||||
|
||||
Assert.Equal(178156, absence.ExternKey);
|
||||
Assert.False(absence.ExternKeyInParentheses);
|
||||
Assert.Null(absence.Reason);
|
||||
Assert.Null(absence.HandledOn);
|
||||
Assert.False(absence.Counts);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Parse_LehntUngueltigesDatumAb()
|
||||
{
|
||||
const string report = "Schüler*innen\tDatum\tFehlstd.\tUnentsch. Fehlstd.\tFehlmin.\tUnentsch. Fehlmin.\tZeit\tAbwesenheitsgrund\tENr\tErledigt\tAbwesenheit zählt\r\n" +
|
||||
"Max Muster\tkein-datum\t1\t0\t45\t0\t10:25-11:10\t\t178156\t\tfalse\r\n";
|
||||
|
||||
Assert.Throws<InvalidDataException>(() => WebUntisLessonAbsenceParser.Parse(report));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user