helm-controller/internal/strings/title_test.go

154 lines
3.1 KiB
Go

package strings
import (
"testing"
"golang.org/x/text/language"
)
func TestTitle(t *testing.T) {
tests := []struct {
name string
s string
want string
}{
{
name: "sentence",
s: "the quick brown fox jumps over the lazy dog",
want: "The Quick Brown Fox Jumps Over The Lazy Dog",
},
{
name: "sentence with uppercase word",
s: "the quick brown fox jumps over the LAZY dog",
want: "The Quick Brown Fox Jumps Over The LAZY Dog",
},
{
name: "empty string",
s: "",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Title(tt.s); got != tt.want {
t.Errorf("Title() = %v, want %v", got, tt.want)
}
})
}
}
func TestTitleWithLanguage(t *testing.T) {
tests := []struct {
name string
s string
lang language.Tag
want string
}{
{
name: "Dutch sentence",
s: "de snelle bruine vos springt over de luie hond in ijburg",
lang: language.Dutch,
want: "De Snelle Bruine Vos Springt Over De Luie Hond In IJburg",
},
{
name: "English sentence",
s: "the quick brown fox jumps over the lazy dog",
lang: language.English,
want: "The Quick Brown Fox Jumps Over The Lazy Dog",
},
{
name: "English sentence with uppercase word",
s: "the quick brown fox jumps over the LAZY dog",
lang: language.English,
want: "The Quick Brown Fox Jumps Over The LAZY Dog",
},
{
name: "empty",
s: "",
lang: language.English,
want: "",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := TitleWithLanguage(tt.s, tt.lang); got != tt.want {
t.Errorf("TitleWithLanguage() = %v, want %v", got, tt.want)
}
})
}
}
func TestNormalize(t *testing.T) {
tests := []struct {
name string
s string
want string
}{
{
name: "sentence",
s: "the quick brown fox jumps over the lazy dog",
want: "The quick brown fox jumps over the lazy dog",
},
{
name: "sentence with uppercase word",
s: "MacDonald had a farm",
want: "MacDonald had a farm",
},
{
name: "empty string",
s: "",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := Normalize(tt.s); got != tt.want {
t.Errorf("Normalize() = %v, want %v", got, tt.want)
}
})
}
}
func TestNormalizeWithLanguage(t *testing.T) {
tests := []struct {
name string
s string
lang language.Tag
want string
}{
{
name: "Dutch sentence",
s: "ijburg is een wijk in Amsterdam",
lang: language.Dutch,
want: "IJburg is een wijk in Amsterdam",
},
{
name: "English sentence",
s: "the quick brown fox jumps over the lazy dog",
lang: language.English,
want: "The quick brown fox jumps over the lazy dog",
},
{
name: "English sentence with uppercase word",
s: "MacDonald had a farm",
lang: language.English,
want: "MacDonald had a farm",
},
{
name: "empty",
s: "",
lang: language.Und,
want: "",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := NormalizeWithLanguage(tt.s, tt.lang); got != tt.want {
t.Errorf("NormalizeWithLanguage() = %v, want %v", got, tt.want)
}
})
}
}