feat: Importkonflikte gesammelt übernehmen
This commit is contained in:
@@ -56,6 +56,35 @@ public sealed class StudentImportDialogViewModelTests
|
||||
Assert.Single(stored);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task UebernehmenFuerAlle_WaehltBeiJedemEindeutigenKonfliktDenVorhandenenSchueler()
|
||||
{
|
||||
var stored = new List<Student>
|
||||
{
|
||||
new() { FirstName = "Max", LastName = "Beispiel" },
|
||||
new() { FirstName = "Erika", LastName = "Muster" },
|
||||
};
|
||||
var service = Service(stored,
|
||||
[
|
||||
new ImportedStudent { FirstName = "Max", LastName = "Beispiel" },
|
||||
new ImportedStudent { FirstName = "Erika", LastName = "Muster" },
|
||||
]);
|
||||
var preview = await service.AnalyzeAsync(File());
|
||||
var vm = new StudentImportDialogViewModel(service, preview, "students.csv");
|
||||
|
||||
Assert.True(vm.CanUseExistingForAll);
|
||||
Assert.All(vm.Conflicts, conflict => Assert.Equal("skip", conflict.SelectedOption.Id));
|
||||
|
||||
vm.UseExistingForAll();
|
||||
|
||||
Assert.All(vm.Conflicts,
|
||||
conflict => Assert.StartsWith("existing:", conflict.SelectedOption.Id));
|
||||
Assert.True(await vm.TryApplyAsync());
|
||||
Assert.Equal(2, vm.Result?.MatchedExistingStudents);
|
||||
Assert.Equal(0, vm.Result?.SkippedStudents);
|
||||
Assert.Equal(2, stored.Count);
|
||||
}
|
||||
|
||||
private static StudentImportService Service(
|
||||
List<Student> stored,
|
||||
IReadOnlyList<ImportedStudent> imported) => new(
|
||||
|
||||
Reference in New Issue
Block a user