| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package jsoniter
- import (
- "bytes"
- "encoding/json"
- "github.com/json-iterator/go/require"
- "testing"
- )
- func Test_true(t *testing.T) {
- should := require.New(t)
- iter := ParseString(ConfigDefault, `true`)
- should.True(iter.ReadBool())
- iter = ParseString(ConfigDefault, `true`)
- should.Equal(true, iter.Read())
- }
- func Test_false(t *testing.T) {
- should := require.New(t)
- iter := ParseString(ConfigDefault, `false`)
- should.False(iter.ReadBool())
- }
- func Test_write_true_false(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := NewStream(ConfigDefault, buf, 4096)
- stream.WriteTrue()
- stream.WriteFalse()
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("truefalse", buf.String())
- }
- func Test_write_val_bool(t *testing.T) {
- should := require.New(t)
- buf := &bytes.Buffer{}
- stream := NewStream(ConfigDefault, buf, 4096)
- stream.WriteVal(true)
- stream.Flush()
- should.Nil(stream.Error)
- should.Equal("true", buf.String())
- }
- func Test_encode_string_bool(t *testing.T) {
- type TestObject struct {
- Field bool `json:",omitempty,string"`
- }
- should := require.New(t)
- output, err := json.Marshal(TestObject{true})
- should.Nil(err)
- should.Equal(`{"Field":"true"}`, string(output))
- output, err = Marshal(TestObject{true})
- should.Nil(err)
- should.Equal(`{"Field":"true"}`, string(output))
- }
- func Test_decode_string_bool(t *testing.T) {
- type TestObject struct {
- Field bool `json:",omitempty,string"`
- }
- should := require.New(t)
- obj := TestObject{}
- err := json.Unmarshal([]byte(`{"Field":"true"}`), &obj)
- should.Nil(err)
- should.True(obj.Field)
- obj = TestObject{}
- err = json.Unmarshal([]byte(`{"Field":true}`), &obj)
- should.NotNil(err)
- obj = TestObject{}
- err = Unmarshal([]byte(`{"Field":"true"}`), &obj)
- should.Nil(err)
- should.True(obj.Field)
- obj = TestObject{}
- err = Unmarshal([]byte(`{"Field":true}`), &obj)
- should.NotNil(err)
- }
|