148 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package strutil
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| func TestCamelCase(t *testing.T) {
 | |
| 	require.Equal(t, "fooBar", CamelCase("foo_bar"))
 | |
| 	require.Equal(t, "fooBar", CamelCase("Foo-Bar"))
 | |
| 	require.Equal(t, "fooBar", CamelCase("Foo&bar"))
 | |
| 	require.Equal(t, "fooBar", CamelCase("foo bar"))
 | |
| 
 | |
| 	require.NotEqual(t, "FooBar", CamelCase("foo_bar"))
 | |
| }
 | |
| 
 | |
| func TestCapitalize(t *testing.T) {
 | |
| 	require.Equal(t, "Foo", Capitalize("foo"))
 | |
| 	require.Equal(t, "Foo", Capitalize("Foo"))
 | |
| 	require.Equal(t, "Foo", Capitalize("Foo"))
 | |
| 
 | |
| 	require.NotEqual(t, "foo", Capitalize("Foo"))
 | |
| }
 | |
| 
 | |
| func TestKebabCase(t *testing.T) {
 | |
| 	require.Equal(t, "foo-bar", KebabCase("Foo Bar-"))
 | |
| 	require.Equal(t, "foo-bar", KebabCase("foo_Bar"))
 | |
| 	require.Equal(t, "foo-bar", KebabCase("fooBar"))
 | |
| 	require.Equal(t, "f-o-o-b-a-r", KebabCase("__FOO_BAR__"))
 | |
| 
 | |
| 	require.NotEqual(t, "foo_bar", KebabCase("fooBar"))
 | |
| }
 | |
| 
 | |
| func TestSnakeCase(t *testing.T) {
 | |
| 	require.Equal(t, "foo_bar", SnakeCase("Foo Bar-"))
 | |
| 	require.Equal(t, "foo_bar", SnakeCase("foo_Bar"))
 | |
| 	require.Equal(t, "foo_bar", SnakeCase("fooBar"))
 | |
| 	require.Equal(t, "f_o_o_b_a_r", SnakeCase("__FOO_BAR__"))
 | |
| 	require.Equal(t, "a_bbc_s_a_b_b_c", SnakeCase("aBbc-s$@a&%_B.B^C"))
 | |
| 
 | |
| 	require.NotEqual(t, "foo-bar", SnakeCase("foo_Bar"))
 | |
| }
 | |
| 
 | |
| func TestUpperFirst(t *testing.T) {
 | |
| 	require.Equal(t, "Foo", UpperFirst("foo"))
 | |
| 	require.Equal(t, "BAR", UpperFirst("bAR"))
 | |
| 	require.Equal(t, "FOo", UpperFirst("FOo"))
 | |
| 	require.Equal(t, "FOo大", UpperFirst("fOo大"))
 | |
| 
 | |
| 	require.NotEqual(t, "Bar", UpperFirst("BAR"))
 | |
| }
 | |
| 
 | |
| func TestLowerFirst(t *testing.T) {
 | |
| 	require.Equal(t, "foo", LowerFirst("foo"))
 | |
| 	require.Equal(t, "bAR", LowerFirst("BAR"))
 | |
| 	require.Equal(t, "fOo", LowerFirst("FOo"))
 | |
| 	require.Equal(t, "fOo大", LowerFirst("FOo大"))
 | |
| 
 | |
| 	require.NotEqual(t, "Bar", LowerFirst("BAR"))
 | |
| }
 | |
| 
 | |
| func TestPadEnd(t *testing.T) {
 | |
| 	require.Equal(t, "a", PadEnd("a", 1, "b"))
 | |
| 	require.Equal(t, "ab", PadEnd("a", 2, "b"))
 | |
| 	require.Equal(t, "abcdmn", PadEnd("abcd", 6, "mno"))
 | |
| 	require.Equal(t, "abcdmm", PadEnd("abcd", 6, "m"))
 | |
| 	require.Equal(t, "abcaba", PadEnd("abc", 6, "ab"))
 | |
| 
 | |
| 	require.NotEqual(t, "ba", PadEnd("a", 2, "b"))
 | |
| }
 | |
| 
 | |
| func TestPadStart(t *testing.T) {
 | |
| 	require.Equal(t, "a", PadStart("a", 1, "b"))
 | |
| 	require.Equal(t, "ba", PadStart("a", 2, "b"))
 | |
| 	require.Equal(t, "mnabcd", PadStart("abcd", 6, "mno"))
 | |
| 	require.Equal(t, "mmabcd", PadStart("abcd", 6, "m"))
 | |
| 	require.Equal(t, "abaabc", PadStart("abc", 6, "ab"))
 | |
| 
 | |
| 	require.NotEqual(t, "ab", PadStart("a", 2, "b"))
 | |
| }
 | |
| 
 | |
| func TestBefore(t *testing.T) {
 | |
| 	require.Equal(t, "lancet", Before("lancet", ""))
 | |
| 	require.Equal(t, "github.com", Before("github.com/test/lancet", "/"))
 | |
| 	require.Equal(t, "github.com/", Before("github.com/test/lancet", "test"))
 | |
| }
 | |
| 
 | |
| func TestBeforeLast(t *testing.T) {
 | |
| 	require.Equal(t, "lancet", BeforeLast("lancet", ""))
 | |
| 	require.Equal(t, "github.com/test", BeforeLast("github.com/test/lancet", "/"))
 | |
| 	require.Equal(t, "github.com/test/", BeforeLast("github.com/test/test/lancet", "test"))
 | |
| 
 | |
| 	require.NotEqual(t, "github.com/", BeforeLast("github.com/test/test/lancet", "test"))
 | |
| }
 | |
| 
 | |
| func TestAfter(t *testing.T) {
 | |
| 	require.Equal(t, "lancet", After("lancet", ""))
 | |
| 	require.Equal(t, "test/lancet", After("github.com/test/lancet", "/"))
 | |
| 	require.Equal(t, "/lancet", After("github.com/test/lancet", "test"))
 | |
| }
 | |
| 
 | |
| func TestAfterLast(t *testing.T) {
 | |
| 	require.Equal(t, "lancet", AfterLast("lancet", ""))
 | |
| 	require.Equal(t, "lancet", AfterLast("github.com/test/lancet", "/"))
 | |
| 	require.Equal(t, "/lancet", AfterLast("github.com/test/lancet", "test"))
 | |
| 	require.Equal(t, "/lancet", AfterLast("github.com/test/test/lancet", "test"))
 | |
| 
 | |
| 	require.NotEqual(t, "/test/lancet", AfterLast("github.com/test/test/lancet", "test"))
 | |
| }
 | |
| 
 | |
| func TestIsString(t *testing.T) {
 | |
| 	require.Equal(t, true, IsString("lancet"))
 | |
| 	require.Equal(t, true, IsString(""))
 | |
| 	require.Equal(t, false, IsString(1))
 | |
| 	require.Equal(t, false, IsString(true))
 | |
| 	require.Equal(t, false, IsString([]string{}))
 | |
| }
 | |
| 
 | |
| func TestReverseStr(t *testing.T) {
 | |
| 	require.Equal(t, "cba", ReverseStr("abc"))
 | |
| 	require.Equal(t, "54321", ReverseStr("12345"))
 | |
| }
 | |
| 
 | |
| func TestWrap(t *testing.T) {
 | |
| 	require.Equal(t, "ab", Wrap("ab", ""))
 | |
| 	require.Equal(t, "", Wrap("", "*"))
 | |
| 	require.Equal(t, "*ab*", Wrap("ab", "*"))
 | |
| 	require.Equal(t, "\"ab\"", Wrap("ab", "\""))
 | |
| 	require.Equal(t, "'ab'", Wrap("ab", "'"))
 | |
| }
 | |
| 
 | |
| func TestUnwrap(t *testing.T) {
 | |
| 	require.Equal(t, "", Unwrap("", "*"))
 | |
| 	require.Equal(t, "ab", Unwrap("ab", ""))
 | |
| 	require.Equal(t, "ab", Unwrap("ab", "*"))
 | |
| 	require.Equal(t, "*ab*", Unwrap("**ab**", "*"))
 | |
| 	require.Equal(t, "ab", Unwrap("**ab**", "**"))
 | |
| 	require.Equal(t, "ab", Unwrap("\"ab\"", "\""))
 | |
| 	require.Equal(t, "*ab", Unwrap("*ab", "*"))
 | |
| 	require.Equal(t, "ab*", Unwrap("ab*", "*"))
 | |
| 	require.Equal(t, "*", Unwrap("***", "*"))
 | |
| 
 | |
| 	require.Equal(t, "", Unwrap("**", "*"))
 | |
| 	require.Equal(t, "***", Unwrap("***", "**"))
 | |
| 	require.Equal(t, "**", Unwrap("**", "**"))
 | |
| }
 | 
