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

61 lines
1.6 KiB
C#

using LehrerApp.Core.Models;
using LehrerApp.Desktop.ViewModels.Students;
using Xunit;
namespace LehrerApp.Desktop.Tests;
public class StudentListViewModelTests
{
private readonly Student _anna = new() { FirstName = "Anna", LastName = "Beispiel", Gender = Gender.W };
private readonly Student _ben = new() { FirstName = "Ben", LastName = "Muster", Gender = Gender.M };
private readonly LearningGroup _group = new() { Name = "Mathematik 7a" };
[Fact]
public void SucheFindetSchuelerWeiterhinUeberNamen()
{
var vm = BuildViewModel();
vm.SearchText = "Anna";
Assert.Single(vm.Students);
Assert.Equal(_anna.Id, vm.Students[0].Id);
}
[Fact]
public void SucheFindetSchuelerUeberLerngruppe()
{
var vm = BuildViewModel();
vm.SearchText = "7a";
Assert.Single(vm.Students);
Assert.Equal(_ben.Id, vm.Students[0].Id);
}
[Fact]
public void LeereSucheZeigtAlleSchueler()
{
var vm = BuildViewModel();
vm.SearchText = " ";
Assert.Equal(2, vm.Students.Count);
}
[Fact]
public void ListeneintraegeZeigenAvatarAusGespeichertemGeschlecht()
{
var vm = BuildViewModel();
Assert.Equal("W", vm.Students.Single(s => s.Id == _anna.Id).AvatarLabel);
Assert.Equal("M", vm.Students.Single(s => s.Id == _ben.Id).AvatarLabel);
}
private StudentListViewModel BuildViewModel() => new(
new FakeStudents([_anna, _ben]),
new FakeGroups([_group]),
new FakeMemberships([
new GroupMembership { StudentId = _ben.Id, GroupId = _group.Id },
]));
}