mirror of
https://github.com/json-iterator/go.git
synced 2024-11-30 08:36:43 +02:00
67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
package extra
|
|
|
|
import (
|
|
"github.com/json-iterator/go"
|
|
"github.com/stretchr/testify/require"
|
|
"testing"
|
|
)
|
|
|
|
func Test_lower_case_with_underscores(t *testing.T) {
|
|
should := require.New(t)
|
|
should.Equal("hello_world", LowerCaseWithUnderscores("helloWorld"))
|
|
should.Equal("hello_world", LowerCaseWithUnderscores("HelloWorld"))
|
|
SetNamingStrategy(LowerCaseWithUnderscores)
|
|
output, err := jsoniter.Marshal(struct {
|
|
UserName string
|
|
FirstLanguage string
|
|
}{
|
|
UserName: "taowen",
|
|
FirstLanguage: "Chinese",
|
|
})
|
|
should.Nil(err)
|
|
should.Equal(`{"user_name":"taowen","first_language":"Chinese"}`, string(output))
|
|
}
|
|
|
|
func Test_set_naming_strategy_with_overrides(t *testing.T) {
|
|
should := require.New(t)
|
|
SetNamingStrategy(LowerCaseWithUnderscores)
|
|
output, err := jsoniter.Marshal(struct {
|
|
UserName string `json:"UserName"`
|
|
FirstLanguage string
|
|
}{
|
|
UserName: "taowen",
|
|
FirstLanguage: "Chinese",
|
|
})
|
|
should.Nil(err)
|
|
should.Equal(`{"UserName":"taowen","first_language":"Chinese"}`, string(output))
|
|
}
|
|
|
|
func Test_set_naming_strategy_with_omitempty(t *testing.T) {
|
|
should := require.New(t)
|
|
SetNamingStrategy(LowerCaseWithUnderscores)
|
|
output, err := jsoniter.Marshal(struct {
|
|
UserName string
|
|
FirstLanguage string `json:",omitempty"`
|
|
}{
|
|
UserName: "taowen",
|
|
})
|
|
should.Nil(err)
|
|
should.Equal(`{"user_name":"taowen"}`, string(output))
|
|
}
|
|
|
|
func Test_set_naming_strategy_with_private_field(t *testing.T) {
|
|
should := require.New(t)
|
|
SetNamingStrategy(LowerCaseWithUnderscores)
|
|
output, err := jsoniter.Marshal(struct {
|
|
UserName string
|
|
userId int
|
|
_UserAge int
|
|
}{
|
|
UserName: "allen",
|
|
userId: 100,
|
|
_UserAge: 30,
|
|
})
|
|
should.Nil(err)
|
|
should.Equal(`{"user_name":"allen"}`, string(output))
|
|
}
|