package strcase_test import ( "testing" "github.com/openmeterio/openmeter/pkg/strcase" ) func TestSnakeToCamel(t *testing.T) { tt := []struct { name string snake string camel string }{ { name: "empty", snake: "", camel: "", }, { name: "single", snake: "a", camel: "a", }, { name: "two", snake: "a_b", camel: "aB", }, { name: "three", snake: "a_b_c", camel: "aBC", }, { name: "long", snake: "abc_def", camel: "abcDef", }, { name: "withUppers", snake: "aBc_dEf_gHi", camel: "aBcDEfGHi", }, { name: "withSpecial", snake: "a_b-c_d/e", camel: "aB-cD/e", }, } for _, tc := range tt { t.Run(tc.name, func(t *testing.T) { camel := strcase.SnakeToCamel(tc.snake) if camel != tc.camel { t.Errorf("expected %q, got %q", tc.camel, camel) } }) } } func TestCamelToSnake(t *testing.T) { tt := []struct { name string camel string snake string }{ { name: "empty", camel: "", snake: "", }, { name: "single", camel: "a", snake: "a", }, { name: "two", camel: "aB", snake: "a_b", }, { name: "three", camel: "aBC", snake: "a_b_c", }, { name: "long", camel: "abcDef", snake: "abc_def", }, { name: "withSpecial", camel: "aB-cD/e", snake: "a_b-c_d/e", }, } for _, tc := range tt { t.Run(tc.name, func(t *testing.T) { snake := strcase.CamelToSnake(tc.camel) if snake != tc.snake { t.Errorf("expected %q, got %q", tc.snake, snake) } }) } } func TestCamelToSnakeToCamel(t *testing.T) { tt := []string{ "", "a", "aB", "aBC", "abcDef", "aBcDEfGHi", "aB-cD/e", } for _, camel := range tt { t.Run(camel, func(t *testing.T) { snake := strcase.CamelToSnake(camel) camel2 := strcase.SnakeToCamel(snake) if camel != camel2 { t.Errorf("expected %q, got %q", camel, camel2) } }) } }