53 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|