jsoniter_adapter_test.go 905 B

12345678910111213141516171819202122232425262728293031323334
  1. package jsoniter
  2. import (
  3. "testing"
  4. "github.com/json-iterator/go/require"
  5. "encoding/json"
  6. "bytes"
  7. "io/ioutil"
  8. )
  9. func Test_new_decoder(t *testing.T) {
  10. should := require.New(t)
  11. decoder1 := json.NewDecoder(bytes.NewBufferString(`[1][2]`))
  12. decoder2 := NewDecoder(bytes.NewBufferString(`[1][2]`))
  13. arr1 := []int{}
  14. should.Nil(decoder1.Decode(&arr1))
  15. should.Equal([]int{1}, arr1)
  16. arr2 := []int{}
  17. should.True(decoder1.More())
  18. buffered, _ := ioutil.ReadAll(decoder1.Buffered())
  19. should.Equal("[2]", string(buffered))
  20. should.Nil(decoder2.Decode(&arr2))
  21. should.Equal([]int{1}, arr2)
  22. should.True(decoder2.More())
  23. buffered, _ = ioutil.ReadAll(decoder2.Buffered())
  24. should.Equal("[2]", string(buffered))
  25. should.Nil(decoder1.Decode(&arr1))
  26. should.Equal([]int{2}, arr1)
  27. should.False(decoder1.More())
  28. should.Nil(decoder2.Decode(&arr2))
  29. should.Equal([]int{2}, arr2)
  30. should.False(decoder2.More())
  31. }