Files
LehrerApp/LehrerApp.Desktop.Tests/ManageStudentDialogViewModelTests.cs
T
2026-08-16 00:29:01 +02:00

51 lines
1.7 KiB
C#

using LehrerApp.Core.Models;
using LehrerApp.Desktop.ViewModels.Students;
using Xunit;
namespace LehrerApp.Desktop.Tests;
public class ManageStudentDialogViewModelTests
{
[Fact]
public void VerknuepfteDatenSperrenEndgueltigesLoeschenAberNichtDeaktivieren()
{
var student = new Student { FirstName = "Anna", LastName = "Beispiel" };
var students = new FakeStudents([student]);
students.SetReferenceSummary(student.Id, new StudentReferenceSummary(1, 2, 0, 0, 3, 1));
var vm = new ManageStudentDialogViewModel(students, student);
Assert.False(vm.CanDelete);
Assert.Equal(4, vm.ReferenceItems.Count);
vm.DeactivateCommand.Execute(null);
Assert.False(student.IsActive);
Assert.Equal(StudentManagementResult.Deactivated, vm.Result);
}
[Fact]
public void UnverknuepfterSchuelerKannEndgueltigGeloeschtWerden()
{
var student = new Student { FirstName = "Anna", LastName = "Beispiel" };
var students = new FakeStudents([student]);
var vm = new ManageStudentDialogViewModel(students, student);
vm.DeletePermanentlyCommand.Execute(null);
Assert.Equal(StudentManagementResult.Deleted, vm.Result);
Assert.Null(students.GetById(student.Id));
}
[Fact]
public void DeaktivierterSchuelerKannWiederAktiviertWerden()
{
var student = new Student { FirstName = "Anna", LastName = "Beispiel", IsActive = false };
var vm = new ManageStudentDialogViewModel(new FakeStudents([student]), student);
vm.ReactivateCommand.Execute(null);
Assert.True(student.IsActive);
Assert.Equal(StudentManagementResult.Reactivated, vm.Result);
}
}