using LehrerApp.Core.Models; using LehrerApp.Desktop.ViewModels.Students; using Xunit; namespace LehrerApp.Desktop.Tests; public sealed class StudentPickerDialogViewModelTests { private static (StudentPickerDialogViewModel Vm, Student Anna, Student Ben) Build() { var anna = new Student { FirstName = "Anna", LastName = "Adler" }; var ben = new Student { FirstName = "Ben", LastName = "Bauer" }; var vm = new StudentPickerDialogViewModel(new FakeStudents([anna, ben])); return (vm, anna, ben); } [Fact] public void SearchText_FiltertNachTeilstring() { var (vm, anna, _) = Build(); vm.SearchText = "ann"; Assert.Single(vm.Students); Assert.Equal(anna.FullName, vm.Students[0].FullName); } [Fact] public void Select_OhneAuswahl_SetztValidationMessage() { var (vm, _, _) = Build(); vm.SelectCommand.Execute(null); Assert.Null(vm.Result); Assert.NotEqual("", vm.ValidationMessage); } [Fact] public void Select_MitAuswahl_LiefertVollenSchueler() { var (vm, anna, _) = Build(); vm.SelectedStudent = vm.Students.Single(s => s.Id == anna.Id); vm.SelectCommand.Execute(null); Assert.Equal(anna.Id, vm.Result?.Id); } }