github.com/viant/toolbox@v0.34.5/format/case_test.go (about)

     1  package format
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"testing"
     6  )
     7  
     8  func TestCase_To(t *testing.T) {
     9  	var useCases = []struct {
    10  		description string
    11  		caseFrom    Case
    12  		caseTo      Case
    13  		input       string
    14  		expect      string
    15  	}{
    16  		{
    17  			description: "camel to uppercase",
    18  			input:       "thisIsMyTest",
    19  			caseFrom:    CaseLowerCamel,
    20  			caseTo:      CaseUpper,
    21  			expect:      "THISISMYTEST",
    22  		},
    23  		{
    24  			description: "camel to lower underscore",
    25  			input:       "thisIsMyTest",
    26  			caseFrom:    CaseLowerCamel,
    27  			caseTo:      CaseLowerUnderscore,
    28  			expect:      "this_is_my_test",
    29  		},
    30  		{
    31  			description: "camel to upper underscore",
    32  			input:       "thisIsMyTest",
    33  			caseFrom:    CaseLowerCamel,
    34  			caseTo:      CaseUpperUnderscore,
    35  			expect:      "THIS_IS_MY_TEST",
    36  		},
    37  		{
    38  			description: "lower underscore to upper camel",
    39  			input:       "this_is_my_test",
    40  			caseFrom:    CaseLowerUnderscore,
    41  			caseTo:      CaseUpperCamel,
    42  			expect:      "ThisIsMyTest",
    43  		},
    44  		{
    45  			description: "upper underscore to lower camel",
    46  			input:       "THIS_IS_MY_TEST",
    47  			caseFrom:    CaseUpperUnderscore,
    48  			caseTo:      CaseLowerCamel,
    49  			expect:      "thisIsMyTest",
    50  		},
    51  
    52  		{
    53  			description: "upper camel to lower camel",
    54  			input:       "ThisIsMyTest",
    55  			caseFrom:    CaseUpperCamel,
    56  			caseTo:      CaseLowerCamel,
    57  			expect:      "thisIsMyTest",
    58  		},
    59  	}
    60  
    61  	for _, useCase := range useCases {
    62  		actual := useCase.caseFrom.Format(useCase.input, useCase.caseTo)
    63  		assert.Equal(t, useCase.expect, actual, useCase.description)
    64  	}
    65  
    66  }
    67