12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package test
- import (
- "bytes"
- "encoding/json"
- "github.com/json-iterator/go"
- "github.com/stretchr/testify/require"
- "io/ioutil"
- "testing"
- )
- func Test_disallowUnknownFields(t *testing.T) {
- should := require.New(t)
- type TestObject struct{}
- var obj TestObject
- decoder := jsoniter.NewDecoder(bytes.NewBufferString(`{"field1":100}`))
- decoder.DisallowUnknownFields()
- should.Error(decoder.Decode(&obj))
- }
- func Test_new_decoder(t *testing.T) {
- should := require.New(t)
- decoder1 := json.NewDecoder(bytes.NewBufferString(`[1][2]`))
- decoder2 := jsoniter.NewDecoder(bytes.NewBufferString(`[1][2]`))
- arr1 := []int{}
- should.Nil(decoder1.Decode(&arr1))
- should.Equal([]int{1}, arr1)
- arr2 := []int{}
- should.True(decoder1.More())
- buffered, _ := ioutil.ReadAll(decoder1.Buffered())
- should.Equal("[2]", string(buffered))
- should.Nil(decoder2.Decode(&arr2))
- should.Equal([]int{1}, arr2)
- should.True(decoder2.More())
- buffered, _ = ioutil.ReadAll(decoder2.Buffered())
- should.Equal("[2]", string(buffered))
- should.Nil(decoder1.Decode(&arr1))
- should.Equal([]int{2}, arr1)
- should.False(decoder1.More())
- should.Nil(decoder2.Decode(&arr2))
- should.Equal([]int{2}, arr2)
- should.False(decoder2.More())
- }
- func Test_use_number(t *testing.T) {
- should := require.New(t)
- decoder1 := json.NewDecoder(bytes.NewBufferString(`123`))
- decoder1.UseNumber()
- decoder2 := jsoniter.NewDecoder(bytes.NewBufferString(`123`))
- decoder2.UseNumber()
- var obj1 interface{}
- should.Nil(decoder1.Decode(&obj1))
- should.Equal(json.Number("123"), obj1)
- var obj2 interface{}
- should.Nil(decoder2.Decode(&obj2))
- should.Equal(json.Number("123"), obj2)
- }
- func Test_decoder_more(t *testing.T) {
- should := require.New(t)
- decoder := jsoniter.NewDecoder(bytes.NewBufferString("abcde"))
- should.True(decoder.More())
- }
|