Files
LehrerApp/LehrerApp.Desktop.Tests/WithdrawStudentDialogViewModelTests.cs
T

40 lines
1.3 KiB
C#

using LehrerApp.Core.Models;
using LehrerApp.Desktop.ViewModels.Groups;
using Xunit;
namespace LehrerApp.Desktop.Tests;
public class WithdrawStudentDialogViewModelTests
{
[Fact]
public void InitialisiertMitHeutigemDatumUndSpeichertAustritt()
{
var membership = new GroupMembership { JoinedAt = new DateOnly(2025, 9, 1) };
var memberships = new FakeMemberships([membership]);
var vm = new WithdrawStudentDialogViewModel(
memberships, membership, "Anna Beispiel", "7a", new DateOnly(2025, 10, 5));
Assert.Equal(new DateOnly(2025, 10, 5), DateOnly.FromDateTime(vm.SelectedDate!.Value.LocalDateTime));
vm.SaveCommand.Execute(null);
Assert.True(vm.WasSaved);
Assert.Equal(new DateOnly(2025, 10, 5), membership.LeftAt);
}
[Fact]
public void VerhindertAustrittVorEintritt()
{
var membership = new GroupMembership { JoinedAt = new DateOnly(2025, 9, 1) };
var vm = new WithdrawStudentDialogViewModel(
new FakeMemberships([membership]), membership, "Anna Beispiel", "7a");
vm.SelectedDate = new DateTimeOffset(2025, 8, 31, 0, 0, 0, TimeSpan.Zero);
vm.SaveCommand.Execute(null);
Assert.False(vm.WasSaved);
Assert.Null(membership.LeftAt);
Assert.NotEmpty(vm.DateError);
}
}