Bladeren bron

add type def marshal/unmarshal test

Xargin 8 jaren geleden
bovenliggende
commit
3bb49c1e47
1 gewijzigde bestanden met toevoegingen van 62 en 0 verwijderingen
  1. 62 0
      jsoniter_alias_test.go

+ 62 - 0
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))
+
+}