41 lines
2.3 KiB
C#
41 lines
2.3 KiB
C#
using LehrerApp.Core.Models;
|
|
using LehrerApp.Desktop.Services;
|
|
using Xunit;
|
|
|
|
namespace LehrerApp.Desktop.Tests;
|
|
|
|
public sealed class HomeworkOverdueServiceTests
|
|
{
|
|
[Fact]
|
|
public void Advance_Nach14Kalendertagen_NurOffeneNachreichungen()
|
|
{
|
|
var today = new DateOnly(2026, 9, 25);
|
|
var group = new LearningGroup { IsActive = true };
|
|
var archived = new LearningGroup { IsActive = false };
|
|
var dueSession = new ParticipationSession { GroupId = group.Id, Date = today.AddDays(-14) };
|
|
var recentSession = new ParticipationSession { GroupId = group.Id, Date = today.AddDays(-13) };
|
|
var archivedSession = new ParticipationSession { GroupId = archived.Id, Date = today.AddDays(-30) };
|
|
var open = new ParticipationEntry { SessionId = dueSession.Id, Homework = HomeworkStatus.MissingOpen };
|
|
var legacy = new ParticipationEntry { SessionId = dueSession.Id, HomeworkMissing = true };
|
|
var submitted = new ParticipationEntry { SessionId = dueSession.Id, Homework = HomeworkStatus.SubmittedLate };
|
|
var partial = new ParticipationEntry { SessionId = dueSession.Id, Homework = HomeworkStatus.PartiallyCompleted };
|
|
var recent = new ParticipationEntry { SessionId = recentSession.Id, Homework = HomeworkStatus.MissingOpen };
|
|
var oldArchived = new ParticipationEntry { SessionId = archivedSession.Id, Homework = HomeworkStatus.MissingOpen };
|
|
var entries = new FakeEntries();
|
|
foreach (var entry in new[] { open, legacy, submitted, partial, recent, oldArchived }) entries.Add(entry);
|
|
var service = new HomeworkOverdueService(new FakeGroups([group, archived]),
|
|
new FakeSessions([dueSession, recentSession, archivedSession]), entries);
|
|
|
|
Assert.Equal(2, service.Advance(today));
|
|
Assert.Equal(HomeworkStatus.MissingOverdue, open.Homework);
|
|
Assert.Equal(HomeworkStatus.MissingOverdue, legacy.Homework);
|
|
Assert.True(open.HomeworkMissing);
|
|
Assert.True(legacy.HomeworkMissing);
|
|
Assert.Equal(HomeworkStatus.SubmittedLate, submitted.Homework);
|
|
Assert.Equal(HomeworkStatus.PartiallyCompleted, partial.Homework);
|
|
Assert.Equal(HomeworkStatus.MissingOpen, recent.Homework);
|
|
Assert.Equal(HomeworkStatus.MissingOpen, oldArchived.Homework);
|
|
Assert.Equal(0, service.Advance(today));
|
|
}
|
|
}
|