package jsoniter import ( "bytes" "github.com/stretchr/testify/require" "io" "testing" ) func Test_read_by_one(t *testing.T) { iter := Parse(ConfigDefault, bytes.NewBufferString("abc"), 1) b := iter.readByte() if iter.Error != nil { t.Fatal(iter.Error) } if b != 'a' { t.Fatal(b) } iter.unreadByte() if iter.Error != nil { t.Fatal(iter.Error) } b = iter.readByte() if iter.Error != nil { t.Fatal(iter.Error) } if b != 'a' { t.Fatal(b) } } func Test_read_by_two(t *testing.T) { should := require.New(t) iter := Parse(ConfigDefault, bytes.NewBufferString("abc"), 2) b := iter.readByte() should.Nil(iter.Error) should.Equal(byte('a'), b) b = iter.readByte() should.Nil(iter.Error) should.Equal(byte('b'), b) iter.unreadByte() should.Nil(iter.Error) iter.unreadByte() should.Nil(iter.Error) b = iter.readByte() should.Nil(iter.Error) should.Equal(byte('a'), b) } func Test_read_until_eof(t *testing.T) { iter := Parse(ConfigDefault, bytes.NewBufferString("abc"), 2) iter.readByte() iter.readByte() b := iter.readByte() if iter.Error != nil { t.Fatal(iter.Error) } if b != 'c' { t.Fatal(b) } iter.readByte() if iter.Error != io.EOF { t.Fatal(iter.Error) } }