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

Commit 2f7e5c8

Browse files
committed
add failing tests for nil non-empty interfaces
1 parent 9277257 commit 2f7e5c8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

jsoniter_interface_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,41 @@ func Test_omitempty_nil_interface(t *testing.T) {
370370
should.Equal(nil, err)
371371
should.Equal(string(js), str)
372372
}
373+
374+
func Test_marshal_nil_marshaler_interface(t *testing.T) {
375+
type TestData struct {
376+
Field json.Marshaler `json:"field"`
377+
}
378+
should := require.New(t)
379+
380+
obj := TestData{
381+
Field: nil,
382+
}
383+
384+
js, err := json.Marshal(obj)
385+
should.Equal(nil, err)
386+
should.Equal(`{"field":null}`, string(js))
387+
388+
str, err := MarshalToString(obj)
389+
should.Equal(nil, err)
390+
should.Equal(string(js), str)
391+
}
392+
393+
func Test_marshal_nil_nonempty_interface(t *testing.T) {
394+
type TestData struct {
395+
Field MyInterface `json:"field"`
396+
}
397+
should := require.New(t)
398+
399+
obj := TestData{
400+
Field: nil,
401+
}
402+
403+
js, err := json.Marshal(obj)
404+
should.Equal(nil, err)
405+
should.Equal(`{"field":null}`, string(js))
406+
407+
str, err := MarshalToString(obj)
408+
should.Equal(nil, err)
409+
should.Equal(string(js), str)
410+
}

0 commit comments

Comments
 (0)