// Unit-Test-Beispiel (QA-01 Akzeptanzkriterium 1/Prüfung 2): keine // externe Abhängigkeit (DB, Netzwerk), reine Funktionsprüfung. package example import ( "errors" "testing" ) func TestNormalizeAddress_LowercasesDomainOnly(t *testing.T) { got, err := NormalizeAddress("User.Name@Example.COM") if err != nil { t.Fatalf("unerwarteter fehler: %v", err) } want := "User.Name@example.com" if got != want { t.Fatalf("got %q, want %q", got, want) } } func TestNormalizeAddress_TrimsWhitespace(t *testing.T) { got, err := NormalizeAddress(" user@example.com ") if err != nil { t.Fatalf("unerwarteter fehler: %v", err) } if got != "user@example.com" { t.Fatalf("got %q", got) } } func TestNormalizeAddress_RejectsInvalidInput(t *testing.T) { cases := []string{"", "no-at-sign", "@nolocalpart.com", "trailing@"} for _, c := range cases { if _, err := NormalizeAddress(c); !errors.Is(err, ErrInvalidAddress) { t.Fatalf("input %q: erwartet ErrInvalidAddress, habe: %v", c, err) } } }