40 lines
1.3 KiB
C#
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);
|
|
}
|
|
}
|