From 1a4aa37efd84100abfd5762ff0dad180f45b1ec8 Mon Sep 17 00:00:00 2001 From: a <a@tuxpa.in> Date: Thu, 13 Jul 2023 22:50:16 -0500 Subject: [PATCH] v2 --- pkg/codec/wire.go | 2 +- pkg/codec/wire_test.go | 56 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 pkg/codec/wire_test.go diff --git a/pkg/codec/wire.go b/pkg/codec/wire.go index 922e3af..c71f59b 100644 --- a/pkg/codec/wire.go +++ b/pkg/codec/wire.go @@ -112,7 +112,7 @@ func (id *ID) RawMessage() json.RawMessage { } // MarshalJSON implements json.Marshaler. -func (id *ID) MarshalJSON() ([]byte, error) { +func (id ID) MarshalJSON() ([]byte, error) { return id.RawMessage(), nil } diff --git a/pkg/codec/wire_test.go b/pkg/codec/wire_test.go new file mode 100644 index 0000000..791f11c --- /dev/null +++ b/pkg/codec/wire_test.go @@ -0,0 +1,56 @@ +package codec + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestVersion(t *testing.T) { + var v Version + + t.Run("encoding", func(t *testing.T) { + ans, err := json.Marshal(v) + assert.NoError(t, err) + assert.Equal(t, []byte(`"2.0"`), ans) + }) + + t.Run("decoding", func(t *testing.T) { + err := json.Unmarshal([]byte(`"2.0"`), &v) + assert.NoError(t, err) + err = json.Unmarshal([]byte("not"), &v) + assert.Error(t, err) + }) +} + +func TestID(t *testing.T) { + + var v ID + + t.Run("number", func(t *testing.T) { + v = NewNumberID(2) + ans, err := json.Marshal(v) + assert.NoError(t, err) + assert.Equal(t, `2`, string(ans)) + }) + + t.Run("numberstring", func(t *testing.T) { + v = NewStringID("2") + ans, err := json.Marshal(v) + assert.NoError(t, err) + assert.Equal(t, `"2"`, string(ans)) + }) + t.Run("string", func(t *testing.T) { + v = NewStringID("doggo") + ans, err := json.Marshal(v) + assert.NoError(t, err) + assert.Equal(t, `"doggo"`, string(ans)) + }) + t.Run("null", func(t *testing.T) { + v = NewNullID() + ans, err := json.Marshal(v) + assert.NoError(t, err) + assert.Equal(t, `null`, string(ans)) + }) +} -- GitLab