diff --git a/jsoniter_alias_test.go b/jsoniter_alias_test.go new file mode 100644 index 0000000..c1a68cf --- /dev/null +++ b/jsoniter_alias_test.go @@ -0,0 +1,62 @@ +package jsoniter + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Test_alias(t *testing.T) { + should := require.New(t) + type myint int + type myint8 int8 + type myint16 int16 + type myint32 int32 + type myint64 int64 + type myuint uint + type myuint8 uint8 + type myuint16 uint16 + type myuint32 uint32 + type myuint64 uint64 + type myfloat32 float32 + type myfloat64 float64 + type mystring string + type mybool bool + type myuintptr uintptr + var a struct { + A myint8 `json:"a"` + B myint16 `json:"b"` + C myint32 `json:"c"` + D myint64 `json:"d"` + E myuint8 `json:"e"` + F myuint16 `json:"f"` + G myuint32 `json:"g"` + H myuint64 `json:"h"` + I myfloat32 `json:"i"` + J myfloat64 `json:"j"` + K mystring `json:"k"` + L myint `json:"l"` + M myuint `json:"m"` + N mybool `json:"n"` + O myuintptr `json:"o"` + } + + should.Nil(UnmarshalFromString(`{"a" : 1, "b" : 1, "c": 1, "d" : 1, "e" : 1, "f" : 1, "g" : 1, "h": 1, "i" : 1, "j" : 1, "k" :"xxxx", "l" : 1, "m":1, "n": true, "o" : 1}`, &a)) + should.Equal(myfloat32(1), a.I) + should.Equal(myfloat64(1), a.J) + should.Equal(myint8(1), a.A) + should.Equal(myint16(1), a.B) + should.Equal(myint32(1), a.C) + should.Equal(myint64(1), a.D) + should.Equal(myuint8(1), a.E) + should.Equal(myuint16(1), a.F) + should.Equal(myuint32(1), a.G) + should.Equal(myuint64(1), a.H) + should.Equal(mystring("xxxx"), a.K) + should.Equal(mybool(true), a.N) + should.Equal(myuintptr(1), a.O) + b, err := Marshal(a) + should.Nil(err) + should.Equal(`{"a":1,"b":1,"c":1,"d":1,"e":1,"f":1,"g":1,"h":1,"i":1,"j":1,"k":"xxxx","l":1,"m":1,"n":true,"o":1}`, string(b)) + +}