mirror of
https://github.com/json-iterator/go.git
synced 2025-04-20 11:28:49 +02:00
37 lines
671 B
Go
37 lines
671 B
Go
package test
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"github.com/json-iterator/go"
|
|
"testing"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
|
|
type Foo struct {
|
|
Bar interface{}
|
|
}
|
|
|
|
func (f Foo) MarshalJSON() ([]byte, error) {
|
|
var buf bytes.Buffer
|
|
err := json.NewEncoder(&buf).Encode(f.Bar)
|
|
return buf.Bytes(), err
|
|
}
|
|
|
|
|
|
// Standard Encoder has trailing newline.
|
|
func TestEncodeMarshalJSON(t *testing.T) {
|
|
|
|
foo := Foo {
|
|
Bar: 123,
|
|
}
|
|
should := require.New(t)
|
|
var buf, stdbuf bytes.Buffer
|
|
enc := jsoniter.ConfigCompatibleWithStandardLibrary.NewEncoder(&buf)
|
|
enc.Encode(foo)
|
|
stdenc := json.NewEncoder(&stdbuf)
|
|
stdenc.Encode(foo)
|
|
should.Equal(stdbuf.Bytes(), buf.Bytes())
|
|
}
|