package dubletten import "testing" // TestOhneGemeinsamesPraefix prüft, wann das Präfix eines Titels aus dem // Dublettenvergleich herausfällt — nur wenn beide Titel dasselbe haben. func TestOhneGemeinsamesPraefix(t *testing.T) { faelle := []struct { name string neu, vorhanden string themaNeu, themaVorhand string }{ {"gleiches Präfix mit Halbgeviertstrich", "Munin – Architektur", "Munin – Überblick", "Architektur", "Überblick"}, {"Bindestrich mit Leerzeichen", "Munin - Architektur", "Munin - Überblick", "Architektur", "Überblick"}, {"Doppelpunkt", "Munin: Architektur", "Munin: Überblick", "Architektur", "Überblick"}, {"senkrechter Strich", "Munin | Architektur", "Munin | Überblick", "Architektur", "Überblick"}, {"Groß-/Kleinschreibung und Leerzeichen im Präfix egal", "Munin Wiki – Architektur", "munin wiki – Überblick", "Architektur", "Überblick"}, {"verschiedene Trenner, gleiches Präfix", "Munin – Architektur", "Munin: Überblick", "Architektur", "Überblick"}, {"nur am ersten Trenner geteilt", "Munin – Architektur – Speicher", "Munin – Überblick", "Architektur – Speicher", "Überblick"}, // Hier muss der volle Titel im Vergleich bleiben. {"verschiedene Präfixe", "Munin – Deployment", "Hugin – Deployment", "Munin – Deployment", "Hugin – Deployment"}, {"nur einer hat ein Präfix", "Munin – Deployment", "Deployment-Prozess", "Munin – Deployment", "Deployment-Prozess"}, {"Bindestrich ohne Leerzeichen ist kein Trenner", "Deployment-Ablauf", "Deployment-Prozess", "Deployment-Ablauf", "Deployment-Prozess"}, {"nichts nach dem Trenner", "Munin – ", "Munin – Überblick", "Munin – ", "Munin – Überblick"}, } for _, f := range faelle { t.Run(f.name, func(t *testing.T) { neu, vorhanden := ohneGemeinsamesPraefix(f.neu, f.vorhanden) if neu != f.themaNeu || vorhanden != f.themaVorhand { t.Errorf("ohneGemeinsamesPraefix(%q, %q) = (%q, %q), erwartet (%q, %q)", f.neu, f.vorhanden, neu, vorhanden, f.themaNeu, f.themaVorhand) } }) } }