From d659db69ff5d9d57b494fdb28e78c1ee77f7be99 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Wed, 26 Oct 2022 08:26:10 +0300 Subject: [PATCH] codec: add []byte support to noop codec Signed-off-by: Vasiliy Tolstov --- codec/noop.go | 4 ++++ codec/noop_test.go | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/codec/noop.go b/codec/noop.go index 9cd0b21a..9ae7a6bf 100644 --- a/codec/noop.go +++ b/codec/noop.go @@ -106,6 +106,10 @@ func (c *noopCodec) Unmarshal(d []byte, v interface{}, opts ...Option) error { case *string: *ve = string(d) return nil + case []byte: + ve = make([]byte, len(d)) + copy(ve, d) + return nil case *[]byte: *ve = d return nil diff --git a/codec/noop_test.go b/codec/noop_test.go index 9f99b5dd..ac09dae3 100644 --- a/codec/noop_test.go +++ b/codec/noop_test.go @@ -5,7 +5,7 @@ import ( "testing" ) -func TestNoopBytes(t *testing.T) { +func TestNoopBytesPtr(t *testing.T) { req := []byte("test req") rsp := make([]byte, len(req)) @@ -19,6 +19,20 @@ func TestNoopBytes(t *testing.T) { } } +func TestNoopBytes(t *testing.T) { + req := []byte("test req") + var rsp []byte + + nc := NewCodec() + if err := nc.Unmarshal(req, &rsp); err != nil { + t.Fatal(err) + } + + if !bytes.Equal(req, rsp) { + t.Fatalf("req not eq rsp: %s != %s", req, rsp) + } +} + func TestNoopString(t *testing.T) { req := []byte("test req") var rsp string