micro/codec/codec_test.go
Maarten Bezemer 74907987d1
codec - Allow to Write() nil body (#1905)
* codec - Allow to Write() nil body

* Oops we are in v3 now
2020-08-06 18:51:00 +01:00

54 lines
1.2 KiB
Go

package codec_test
import (
"io"
"testing"
"github.com/micro/go-micro/v3/codec"
"github.com/micro/go-micro/v3/codec/bytes"
"github.com/micro/go-micro/v3/codec/grpc"
"github.com/micro/go-micro/v3/codec/json"
"github.com/micro/go-micro/v3/codec/jsonrpc"
"github.com/micro/go-micro/v3/codec/proto"
"github.com/micro/go-micro/v3/codec/protorpc"
"github.com/micro/go-micro/v3/codec/text"
)
type testRWC struct{}
func (rwc *testRWC) Read(p []byte) (n int, err error) {
return 0, nil
}
func (rwc *testRWC) Write(p []byte) (n int, err error) {
return 0, nil
}
func (rwc *testRWC) Close() error {
return nil
}
func getCodecs(c io.ReadWriteCloser) map[string]codec.Codec {
return map[string]codec.Codec{
"bytes": bytes.NewCodec(c),
"grpc": grpc.NewCodec(c),
"json": json.NewCodec(c),
"jsonrpc": jsonrpc.NewCodec(c),
"proto": proto.NewCodec(c),
"protorpc": protorpc.NewCodec(c),
"text": text.NewCodec(c),
}
}
func Test_WriteEmptyBody(t *testing.T) {
for name, c := range getCodecs(&testRWC{}) {
err := c.Write(&codec.Message{
Type: codec.Error,
Header: map[string]string{},
}, nil)
if err != nil {
t.Fatalf("codec %s - expected no error when writing empty/nil body: %s", name, err)
}
}
}