blob: 3aba379cef43e41ae156f27814cea9c388bc534c [file] [log] [blame]
// Copyright Istio Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package strcase_test
import (
"testing"
)
import (
. "github.com/onsi/gomega"
)
import (
"github.com/apache/dubbo-go-pixiu/pkg/util/strcase"
)
func TestCamelCase(t *testing.T) {
cases := map[string]string{
"": "",
"foo": "Foo",
"foobar": "Foobar",
"fooBar": "FooBar",
"foo_bar": "FooBar",
"foo-bar": "FooBar",
"foo_Bar": "FooBar",
"foo9bar": "Foo9Bar",
"HTTP-API-Spec": "HTTPAPISpec",
"http-api-spec": "HttpApiSpec",
"_foo": "XFoo",
"-foo": "XFoo",
"_Foo": "XFoo",
"-Foo": "XFoo",
}
for k, v := range cases {
t.Run(k, func(t *testing.T) {
g := NewWithT(t)
a := strcase.CamelCase(k)
g.Expect(a).To(Equal(v))
})
}
}
func TestCamelCaseToKebabCase(t *testing.T) {
cases := map[string]string{
"": "",
"Foo": "foo",
"FooBar": "foo-bar",
"foo9bar": "foo9bar",
"HTTPAPISpec": "http-api-spec",
"HTTPAPISpecBinding": "http-api-spec-binding",
}
for k, v := range cases {
t.Run(k, func(t *testing.T) {
g := NewWithT(t)
a := strcase.CamelCaseToKebabCase(k)
g.Expect(a).To(Equal(v))
})
}
}