summaryrefslogtreecommitdiff
path: root/internal/naming/naming_test.go
blob: a3bc49f3a03b384f12e9a5b2990153f6f8a234b5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package naming

import "testing"

// English must reproduce exactly what calendar.HumanizeSlug produced before the
// name generation moved here (the golden cases carried over verbatim).
func TestDayNameEnglish(t *testing.T) {
	cases := map[string]string{
		"ordinary-sunday-11":            "11th Sunday in Ordinary Time",
		"ordinary-11-tue":               "Tuesday of the 11th Week in Ordinary Time",
		"advent-2-mon":                  "Monday of the 2nd Week of Advent",
		"advent-dec-17":                 "December 17",
		"lent-after-ashes-wed":          "Ash Wednesday",
		"lent-after-ashes-thu":          "Thursday after Ash Wednesday",
		"triduum-fri":                   "Good Friday",
		"easter-octave-mon":             "Monday in the Octave of Easter",
		"christmas-jan-2":               "January 2",
		"christmas-after-epiphany-mon":  "Monday after the Epiphany",
		"trinity-sunday":                "The Most Holy Trinity",
		"ef-time-after-pentecost-4-tue": "Tuesday of the 4th Week after Pentecost",
		"ef-passiontide-0-thursday":     "Thursday of Passion Week",
		"ef-september-ember-wed":        "Ember Wednesday of September",
	}
	for slug, want := range cases {
		if got := DayName(slug, "en"); got != want {
			t.Errorf("DayName(%q, en) = %q, want %q", slug, got, want)
		}
	}
}

// Polish must localise both named days and composed names, using its own word
// order and genitive-case season names.
func TestDayNamePolish(t *testing.T) {
	cases := map[string]string{
		"ordinary-sunday-11":            "11. Niedziela Okresu Zwykłego",
		"ordinary-11-tue":               "Wtorek 11. tygodnia Okresu Zwykłego",
		"advent-2-mon":                  "Poniedziałek 2. tygodnia Adwentu",
		"advent-dec-17":                 "17 grudnia",
		"triduum-fri":                   "Wielki Piątek",
		"lent-after-ashes-wed":          "Środa Popielcowa",
		"ef-time-after-pentecost-4-tue": "Wtorek 4. tygodnia po Zesłaniu Ducha Świętego",
	}
	for slug, want := range cases {
		if got := DayName(slug, "pl"); got != want {
			t.Errorf("DayName(%q, pl) = %q, want %q", slug, got, want)
		}
	}
}

// An unknown language falls back entirely to English.
func TestDayNameUnknownLangFallsBackToEnglish(t *testing.T) {
	if got := DayName("ordinary-sunday-3", "xx"); got != "3rd Sunday in Ordinary Time" {
		t.Errorf("unknown lang = %q", got)
	}
}