Files
LehrerApp/LehrerApp.Desktop.Tests/UnitDialogViewModelTests.cs
T
2026-09-05 00:02:28 +02:00

53 lines
2.0 KiB
C#

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);
}
}