Zwei Bugs behoben: - Gefilterte Listen blieben nach Klick auf eine Roster-Zeile leer: WebUntis liefert Schülernamen je nach Bericht in unterschiedlicher Reihenfolge (Schülerreport "Vorname Nachname", Fehlzeiten-/Klassenbuchberichte "Nachname Vorname"). Neuer reihenfolge-unabhängiger Namensvergleich (UntisNameMatching), betraf auch den Roster-Namensabgleich der Übersicht selbst (Ampel-Symbole/Badges waren ohne ExternKey vermutlich fast immer falsch). - Nach dem ersten Tab-Wechsel (Klick auf Roster-Zeile) blieb ein zweiter Klick wirkungslos, sobald man zwischendurch manuell zur Übersicht zurückgeklickt hatte: TabbedPage.SelectedIndex war ohne Mode=TwoWay gebunden. Explizit ergänzt. Zusätzlich: Fehlzeiten-Zeilen für einen kompletten Fehltag werden jetzt dezent hervorgehoben (Nutzer-Feedback, bisher nicht erkennbar). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
22 lines
749 B
C#
22 lines
749 B
C#
using LehrerApp.Desktop.ViewModels.ClassTeacher;
|
|
using Xunit;
|
|
|
|
namespace LehrerApp.Desktop.Tests;
|
|
|
|
public sealed class UntisNameMatchingTests
|
|
{
|
|
[Theory]
|
|
[InlineData("Ben Schmidt", "Schmidt Ben")]
|
|
[InlineData("Ada Müller", "MÜLLER ADA")]
|
|
[InlineData("Max Mustermann", "mustermann max")]
|
|
public void NamesMatch_IstReihenfolgeUndGrossKleinschreibungUnabhaengig(string a, string b) =>
|
|
Assert.True(UntisNameMatching.NamesMatch(a, b));
|
|
|
|
[Theory]
|
|
[InlineData("Ben Schmidt", "Ben Müller")]
|
|
[InlineData(null, "Ben Schmidt")]
|
|
[InlineData("Ben Schmidt", "")]
|
|
public void NamesMatch_LehntUnterschiedlicheOderFehlendeNamenAb(string? a, string b) =>
|
|
Assert.False(UntisNameMatching.NamesMatch(a, b));
|
|
}
|