62 lines
2.0 KiB
C#
62 lines
2.0 KiB
C#
using LehrerApp.Core.Models;
|
|
using LehrerApp.Desktop.Services;
|
|
using Xunit;
|
|
|
|
namespace LehrerApp.Desktop.Tests;
|
|
|
|
public sealed class UntisLessonAbsenceHelperTests
|
|
{
|
|
[Theory]
|
|
[InlineData(0, AttendanceStatus.Late)]
|
|
[InlineData(9, AttendanceStatus.Late)]
|
|
[InlineData(10, AttendanceStatus.SignificantlyLate)]
|
|
[InlineData(44, AttendanceStatus.SignificantlyLate)]
|
|
public void MapStatus_StaffeltVerspaetungAbZehnMinuten(
|
|
int absentMinutes, AttendanceStatus expected)
|
|
{
|
|
Assert.Equal(expected, UntisLessonAbsenceHelper.MapStatus(Absence(absentMinutes)));
|
|
}
|
|
|
|
[Fact]
|
|
public void MatchesUntisStatus_ErheblichVerspaetetAkzeptiertAllgemeinesUntisVerspaetet()
|
|
{
|
|
var matches = UntisLessonAbsenceHelper.MatchesUntisStatus(
|
|
AttendanceStatus.SignificantlyLate, AttendanceStatus.Late);
|
|
|
|
Assert.True(matches);
|
|
}
|
|
|
|
[Fact]
|
|
public void MatchesUntisStatus_NachgereichteEntschuldigungBleibtAenderung()
|
|
{
|
|
var matches = UntisLessonAbsenceHelper.MatchesUntisStatus(
|
|
AttendanceStatus.SignificantlyLate, AttendanceStatus.Excused);
|
|
|
|
Assert.False(matches);
|
|
}
|
|
|
|
[Fact]
|
|
public void MatchesUntisStatus_IstFuerVerspaetungsPraezisierungGerichtet()
|
|
{
|
|
var matches = UntisLessonAbsenceHelper.MatchesUntisStatus(
|
|
AttendanceStatus.Late, AttendanceStatus.SignificantlyLate);
|
|
|
|
Assert.False(matches);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(AttendanceStatus.Late)]
|
|
[InlineData(AttendanceStatus.SignificantlyLate)]
|
|
[InlineData(AttendanceStatus.ExcusePending)]
|
|
[InlineData(AttendanceStatus.Excused)]
|
|
[InlineData(AttendanceStatus.Unexcused)]
|
|
public void MatchesUntisStatus_GleicherStatusPasst(AttendanceStatus status)
|
|
{
|
|
Assert.True(UntisLessonAbsenceHelper.MatchesUntisStatus(status, status));
|
|
}
|
|
|
|
private static UntisLessonAbsenceDto Absence(int absentMinutes) => new(
|
|
"Testschüler", 20260925, 1, 0, absentMinutes, 0, 800, 845,
|
|
"Verspätung", 1, false, null, true);
|
|
}
|