using LehrerApp.Desktop.ViewModels.Groups; using Xunit; namespace LehrerApp.Desktop.Tests; /// Nutzer-Feedback: bei einer Klasse, die in mehreren Fächern unterrichtet wird (mehrere /// LearningGroup-Datensätze mit gleichem Namen), war im Einheiten-Dialog nur das Fach sichtbar, /// nicht welche Klasse gemeint ist — beides zusammen macht es eindeutig. public sealed class UnitDialogViewModelTests { [Fact] public void GroupSubjectDisplay_ZeigtGruppeUndFachZusammen() { var vm = new UnitDialogViewModel(new FakeUnits(), new FakeCompetencyDomains(), Guid.NewGuid(), Guid.NewGuid(), 10, "10c", "Chemie", editingUnit: null); Assert.Equal("10c · Chemie", vm.GroupSubjectDisplay); } [Fact] public void GroupSubjectDisplay_OhneFach_WeistDaraufHin() { var vm = new UnitDialogViewModel(new FakeUnits(), new FakeCompetencyDomains(), Guid.NewGuid(), null, 10, "10c", "", editingUnit: null); Assert.Equal("10c · kein Fach hinterlegt (siehe Lerngruppe)", vm.GroupSubjectDisplay); } [Fact] public void Laufend_SetztBisherigeLaufendeEinheitAufAbgeschlossenUndWarntVorher() { var groupId = Guid.NewGuid(); var units = new FakeUnits(); var previous = new LehrerApp.Core.Models.Unit { GroupId = groupId, Title = "Bruchrechnung", Status = LehrerApp.Core.Models.UnitStatus.Active, }; units.Add(previous); var vm = new UnitDialogViewModel(units, new FakeCompetencyDomains(), groupId, null, 6, "6a", "Mathematik", editingUnit: null) { Title = "Prozentrechnung", StatusName = "Laufend", }; Assert.Contains("Bruchrechnung", vm.StatusNotice); vm.SaveCommand.Execute(null); Assert.Equal(LehrerApp.Core.Models.UnitStatus.Completed, previous.Status); Assert.Single(units.GetByGroup(groupId), u => u.Status == LehrerApp.Core.Models.UnitStatus.Active); } }