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