Add shared export infrastructure
This commit is contained in:
@@ -597,4 +597,53 @@ public sealed class WorkloadEvaluationViewModelTests
|
||||
Assert.Contains("Soll:", vm.RequiredVsActualDisplay);
|
||||
Assert.Contains("Ist: 1 h", vm.RequiredVsActualDisplay);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExportCsv_EnthaeltZeitraumSummenUndKorrektMaskierteAufschluesselung()
|
||||
{
|
||||
var group = new LearningGroup { Name = "8a \"Chemie\"" };
|
||||
var entries = new FakeTimeEntries();
|
||||
entries.Add(new TimeEntry
|
||||
{
|
||||
Category = "Korrektur; schriftlich",
|
||||
GroupId = group.Id,
|
||||
Date = new DateOnly(2026, 3, 5),
|
||||
DurationMinutes = 90,
|
||||
});
|
||||
var vm = new WorkloadEvaluationViewModel(entries, new FakeGroups([group]),
|
||||
BuildSettingsService(), new SchoolYearService())
|
||||
{
|
||||
SelectedYear = 2026,
|
||||
};
|
||||
vm.SelectedMonth = vm.MonthOptions[2];
|
||||
|
||||
var csv = vm.ExportCsv();
|
||||
|
||||
Assert.Contains("Zeitraum;01.03.2026;31.03.2026", csv);
|
||||
Assert.Contains("Gesamtzeit (Minuten);90", csv);
|
||||
Assert.Contains("\"Korrektur; schriftlich\";90;1,5", csv);
|
||||
Assert.Contains("\"8a \"\"Chemie\"\"\";90;1,5", csv);
|
||||
Assert.Equal("Arbeitszeitauswertung_2026-03.csv", vm.ExportSuggestedFileName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ExportCsv_MitPflichtstunden_EnthaeltSollzeitUndAbweichung()
|
||||
{
|
||||
var entries = new FakeTimeEntries();
|
||||
entries.Add(new TimeEntry { Category = "Unterricht", Date = new DateOnly(2026, 3, 2), DurationMinutes = 60 });
|
||||
var vm = new WorkloadEvaluationViewModel(entries, new FakeGroups([]),
|
||||
BuildSettingsService(), new SchoolYearService())
|
||||
{
|
||||
SelectedYear = 2026,
|
||||
RequiredWeeklyHoursText = "10",
|
||||
};
|
||||
vm.SelectedMonth = vm.MonthOptions[2];
|
||||
vm.SaveRequiredWeeklyHoursCommand.Execute(null);
|
||||
|
||||
var csv = vm.ExportCsv();
|
||||
|
||||
Assert.Contains("Pflichtstunden pro Woche;10", csv);
|
||||
Assert.Contains("Sollzeit (Stunden);", csv);
|
||||
Assert.Contains("Abweichung (Stunden);", csv);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user