Skip to content
This repository was archived by the owner on Dec 15, 2025. It is now read-only.

Commit 64c1c67

Browse files
committed
consolidate more tests
1 parent e3bc511 commit 64c1c67

File tree

8 files changed

+133
-196
lines changed

8 files changed

+133
-196
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,72 @@
1-
package jsoniter
1+
package any_tests
22

33
import (
44
"testing"
55

66
"github.com/stretchr/testify/require"
7+
"github.com/json-iterator/go"
78
)
89

910
// if must be valid is useless, just drop this test
1011
func Test_must_be_valid(t *testing.T) {
1112
should := require.New(t)
12-
any := Get([]byte("123"))
13+
any := jsoniter.Get([]byte("123"))
1314
should.Equal(any.MustBeValid().ToInt(), 123)
1415

15-
any = Wrap(int8(10))
16+
any = jsoniter.Wrap(int8(10))
1617
should.Equal(any.MustBeValid().ToInt(), 10)
1718

18-
any = Wrap(int16(10))
19+
any = jsoniter.Wrap(int16(10))
1920
should.Equal(any.MustBeValid().ToInt(), 10)
2021

21-
any = Wrap(int32(10))
22+
any = jsoniter.Wrap(int32(10))
2223
should.Equal(any.MustBeValid().ToInt(), 10)
2324

24-
any = Wrap(int64(10))
25+
any = jsoniter.Wrap(int64(10))
2526
should.Equal(any.MustBeValid().ToInt(), 10)
2627

27-
any = Wrap(uint(10))
28+
any = jsoniter.Wrap(uint(10))
2829
should.Equal(any.MustBeValid().ToInt(), 10)
2930

30-
any = Wrap(uint8(10))
31+
any = jsoniter.Wrap(uint8(10))
3132
should.Equal(any.MustBeValid().ToInt(), 10)
3233

33-
any = Wrap(uint16(10))
34+
any = jsoniter.Wrap(uint16(10))
3435
should.Equal(any.MustBeValid().ToInt(), 10)
3536

36-
any = Wrap(uint32(10))
37+
any = jsoniter.Wrap(uint32(10))
3738
should.Equal(any.MustBeValid().ToInt(), 10)
3839

39-
any = Wrap(uint64(10))
40+
any = jsoniter.Wrap(uint64(10))
4041
should.Equal(any.MustBeValid().ToInt(), 10)
4142

42-
any = Wrap(float32(10))
43+
any = jsoniter.Wrap(float32(10))
4344
should.Equal(any.MustBeValid().ToFloat64(), float64(10))
4445

45-
any = Wrap(float64(10))
46+
any = jsoniter.Wrap(float64(10))
4647
should.Equal(any.MustBeValid().ToFloat64(), float64(10))
4748

48-
any = Wrap(true)
49+
any = jsoniter.Wrap(true)
4950
should.Equal(any.MustBeValid().ToFloat64(), float64(1))
5051

51-
any = Wrap(false)
52+
any = jsoniter.Wrap(false)
5253
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
5354

54-
any = Wrap(nil)
55+
any = jsoniter.Wrap(nil)
5556
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
5657

57-
any = Wrap(struct{ age int }{age: 1})
58+
any = jsoniter.Wrap(struct{ age int }{age: 1})
5859
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
5960

60-
any = Wrap(map[string]interface{}{"abc": 1})
61+
any = jsoniter.Wrap(map[string]interface{}{"abc": 1})
6162
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
6263

63-
any = Wrap("abc")
64+
any = jsoniter.Wrap("abc")
6465
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
6566

66-
any = Wrap([]int{})
67+
any = jsoniter.Wrap([]int{})
6768
should.Equal(any.MustBeValid().ToFloat64(), float64(0))
6869

69-
any = Wrap([]int{1, 2})
70+
any = jsoniter.Wrap([]int{1, 2})
7071
should.Equal(any.MustBeValid().ToFloat64(), float64(1))
7172
}

jsoniter_null_test.go

Lines changed: 0 additions & 168 deletions
This file was deleted.
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
package jsoniter
1+
package misc_tests
22

33
import (
44
"encoding/json"
55
"reflect"
66
"testing"
7+
"github.com/json-iterator/go"
78
)
89

910
type Level1 struct {
@@ -15,7 +16,7 @@ type Level2 struct {
1516
}
1617

1718
func Test_nested(t *testing.T) {
18-
iter := ParseString(ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
19+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
1920
l1 := Level1{}
2021
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
2122
switch l1Field {
@@ -50,7 +51,7 @@ func Test_nested(t *testing.T) {
5051

5152
func Benchmark_jsoniter_nested(b *testing.B) {
5253
for n := 0; n < b.N; n++ {
53-
iter := ParseString(ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
54+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `{"hello": [{"world": "value1"}, {"world": "value2"}]}`)
5455
l1 := Level1{}
5556
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
5657
switch l1Field {
@@ -63,7 +64,7 @@ func Benchmark_jsoniter_nested(b *testing.B) {
6364
}
6465
}
6566

66-
func readLevel1Hello(iter *Iterator) []Level2 {
67+
func readLevel1Hello(iter *jsoniter.Iterator) []Level2 {
6768
l2Array := make([]Level2, 0, 2)
6869
for iter.ReadArray() {
6970
l2 := Level2{}

misc_tests/jsoniter_null_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package misc_tests
2+
3+
import (
4+
"bytes"
5+
"io"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
"github.com/json-iterator/go"
10+
)
11+
12+
func Test_read_null(t *testing.T) {
13+
should := require.New(t)
14+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `null`)
15+
should.True(iter.ReadNil())
16+
iter = jsoniter.ParseString(jsoniter.ConfigDefault, `null`)
17+
should.Nil(iter.Read())
18+
iter = jsoniter.ParseString(jsoniter.ConfigDefault, `navy`)
19+
iter.Read()
20+
should.True(iter.Error != nil && iter.Error != io.EOF)
21+
iter = jsoniter.ParseString(jsoniter.ConfigDefault, `navy`)
22+
iter.ReadNil()
23+
should.True(iter.Error != nil && iter.Error != io.EOF)
24+
}
25+
26+
func Test_write_null(t *testing.T) {
27+
should := require.New(t)
28+
buf := &bytes.Buffer{}
29+
stream := jsoniter.NewStream(jsoniter.ConfigDefault, buf, 4096)
30+
stream.WriteNil()
31+
stream.Flush()
32+
should.Nil(stream.Error)
33+
should.Equal("null", buf.String())
34+
}
35+
36+
func Test_decode_null_object_field(t *testing.T) {
37+
should := require.New(t)
38+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
39+
iter.ReadArray()
40+
if iter.ReadObject() != "" {
41+
t.FailNow()
42+
}
43+
iter.ReadArray()
44+
if iter.ReadString() != "a" {
45+
t.FailNow()
46+
}
47+
type TestObject struct {
48+
Field string
49+
}
50+
objs := []TestObject{}
51+
should.Nil(jsoniter.UnmarshalFromString("[null]", &objs))
52+
should.Len(objs, 1)
53+
}
54+
55+
func Test_decode_null_array_element(t *testing.T) {
56+
should := require.New(t)
57+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
58+
should.True(iter.ReadArray())
59+
should.True(iter.ReadNil())
60+
should.True(iter.ReadArray())
61+
should.Equal("a", iter.ReadString())
62+
}
63+
64+
func Test_decode_null_string(t *testing.T) {
65+
should := require.New(t)
66+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
67+
should.True(iter.ReadArray())
68+
should.Equal("", iter.ReadString())
69+
should.True(iter.ReadArray())
70+
should.Equal("a", iter.ReadString())
71+
}
72+
73+
func Test_decode_null_skip(t *testing.T) {
74+
iter := jsoniter.ParseString(jsoniter.ConfigDefault, `[null,"a"]`)
75+
iter.ReadArray()
76+
iter.Skip()
77+
iter.ReadArray()
78+
if iter.ReadString() != "a" {
79+
t.FailNow()
80+
}
81+
}

0 commit comments

Comments
 (0)