@@ -2,36 +2,15 @@ package misc_tests
22
33import (
44 "encoding/json"
5- "fmt"
65 "testing"
76 "github.com/stretchr/testify/require"
87 "github.com/json-iterator/go"
8+ "io"
99)
1010
11- type MyInterface interface {
12- Hello () string
13- }
14-
15- type MyString string
16-
17- func (ms MyString ) Hello () string {
18- return string (ms )
19- }
20-
21- func Test_decode_object_contain_non_empty_interface (t * testing.T ) {
22- type TestObject struct {
23- Field MyInterface
24- }
25- should := require .New (t )
26- obj := TestObject {}
27- obj .Field = MyString ("abc" )
28- should .Nil (jsoniter .UnmarshalFromString (`{"Field": "hello"}` , & obj ))
29- should .Equal (MyString ("hello" ), obj .Field )
30- }
31-
3211func Test_nil_non_empty_interface (t * testing.T ) {
3312 type TestObject struct {
34- Field []MyInterface
13+ Field []io. Closer
3514 }
3615 should := require .New (t )
3716 obj := TestObject {}
@@ -40,31 +19,6 @@ func Test_nil_non_empty_interface(t *testing.T) {
4019 should .NotNil (jsoniter .Unmarshal (b , & obj ))
4120}
4221
43- func Test_read_large_number_as_interface (t * testing.T ) {
44- should := require .New (t )
45- var val interface {}
46- err := jsoniter.Config {UseNumber : true }.Froze ().UnmarshalFromString (`123456789123456789123456789` , & val )
47- should .Nil (err )
48- output , err := jsoniter .MarshalToString (val )
49- should .Nil (err )
50- should .Equal (`123456789123456789123456789` , output )
51- }
52-
53- func Test_unmarshal_ptr_to_interface (t * testing.T ) {
54- type TestData struct {
55- Name string `json:"name"`
56- }
57- should := require .New (t )
58- var obj interface {} = & TestData {}
59- err := json .Unmarshal ([]byte (`{"name":"value"}` ), & obj )
60- should .Nil (err )
61- should .Equal ("&{value}" , fmt .Sprintf ("%v" , obj ))
62- obj = interface {}(& TestData {})
63- err = jsoniter .Unmarshal ([]byte (`{"name":"value"}` ), & obj )
64- should .Nil (err )
65- should .Equal ("&{value}" , fmt .Sprintf ("%v" , obj ))
66- }
67-
6822func Test_nil_out_null_interface (t * testing.T ) {
6923 type TestData struct {
7024 Field interface {} `json:"field"`
@@ -86,7 +40,7 @@ func Test_nil_out_null_interface(t *testing.T) {
8640
8741 err = jsoniter .Unmarshal (data2 , & obj )
8842 should .NoError (err )
89- should .Equal ( nil , obj .Field )
43+ should .Nil ( obj .Field )
9044
9145 // Checking stdlib behavior matches.
9246 obj2 := TestData {
@@ -118,12 +72,12 @@ func Test_overwrite_interface_ptr_value_with_nil(t *testing.T) {
11872 }
11973
12074 err := json .Unmarshal ([]byte (`{"payload": {"val": 42}}` ), & wrapper )
121- should .Equal ( nil , err )
75+ should .NoError ( err )
12276 should .Equal (& payload , wrapper .Payload )
12377 should .Equal (42 , (* (wrapper .Payload .(* * Payload ))).Value )
12478
12579 err = json .Unmarshal ([]byte (`{"payload": null}` ), & wrapper )
126- should .Equal ( nil , err )
80+ should .NoError ( err )
12781 should .Equal (& payload , wrapper .Payload )
12882 should .Equal ((* Payload )(nil ), payload )
12983
@@ -138,7 +92,7 @@ func Test_overwrite_interface_ptr_value_with_nil(t *testing.T) {
13892 should .Equal (42 , (* (wrapper .Payload .(* * Payload ))).Value )
13993
14094 err = jsoniter .Unmarshal ([]byte (`{"payload": null}` ), & wrapper )
141- should .Equal ( nil , err )
95+ should .NoError ( err )
14296 should .Equal (& payload , wrapper .Payload )
14397 should .Equal ((* Payload )(nil ), payload )
14498}
@@ -159,11 +113,11 @@ func Test_overwrite_interface_value_with_nil(t *testing.T) {
159113 }
160114
161115 err := json .Unmarshal ([]byte (`{"payload": {"val": 42}}` ), & wrapper )
162- should .Equal ( nil , err )
116+ should .NoError ( err )
163117 should .Equal (42 , (* (wrapper .Payload .(* Payload ))).Value )
164118
165119 err = json .Unmarshal ([]byte (`{"payload": null}` ), & wrapper )
166- should .Equal ( nil , err )
120+ should .NoError ( err )
167121 should .Equal (nil , wrapper .Payload )
168122 should .Equal (42 , payload .Value )
169123
@@ -198,12 +152,12 @@ func Test_unmarshal_into_nil(t *testing.T) {
198152 }
199153
200154 err := json .Unmarshal ([]byte (`{"payload": {"val": 42}}` ), & wrapper )
201- should .Nil (err )
155+ should .NoError (err )
202156 should .NotNil (wrapper .Payload )
203157 should .Nil (payload )
204158
205159 err = json .Unmarshal ([]byte (`{"payload": null}` ), & wrapper )
206- should .Nil (err )
160+ should .NoError (err )
207161 should .Nil (wrapper .Payload )
208162 should .Nil (payload )
209163
@@ -213,12 +167,12 @@ func Test_unmarshal_into_nil(t *testing.T) {
213167 }
214168
215169 err = jsoniter .Unmarshal ([]byte (`{"payload": {"val": 42}}` ), & wrapper )
216- should .Nil (err )
170+ should .NoError (err )
217171 should .NotNil (wrapper .Payload )
218172 should .Nil (payload )
219173
220174 err = jsoniter .Unmarshal ([]byte (`{"payload": null}` ), & wrapper )
221- should .Nil (err )
175+ should .NoError (err )
222176 should .Nil (wrapper .Payload )
223177 should .Nil (payload )
224178}
0 commit comments