munin/internal/dubletten/dubletten_test.go

48 lines
2.1 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
}
})
}
}