From 2a1765daf82b8b25b4173b0e413ecac507ea0586 Mon Sep 17 00:00:00 2001 From: Mark Sagi-Kazar Date: Mon, 24 Jun 2024 11:47:00 +0200 Subject: [PATCH] test(encoding): add tests for codec registry implementation Signed-off-by: Mark Sagi-Kazar --- encoding_test.go | 66 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/encoding_test.go b/encoding_test.go index 61199c0..3e67a30 100644 --- a/encoding_test.go +++ b/encoding_test.go @@ -36,4 +36,70 @@ func TestDefaultCodecRegistry(t *testing.T) { assert.Equal(t, c, decoder) }) + + t.Run("CodecNotFound", func(t *testing.T) { + registry := NewCodecRegistry() + + _, err := registry.Encoder("myformat") + require.Error(t, err) + + _, err = registry.Decoder("myformat") + require.Error(t, err) + }) + + t.Run("FormatIsCaseInsensitive", func(t *testing.T) { + registry := NewCodecRegistry() + + c := codec{} + + err := registry.RegisterCodec("MYFORMAT", c) + require.NoError(t, err) + + { + encoder, err := registry.Encoder("myformat") + require.NoError(t, err) + + assert.Equal(t, c, encoder) + } + + { + encoder, err := registry.Encoder("MYFORMAT") + require.NoError(t, err) + + assert.Equal(t, c, encoder) + } + + { + decoder, err := registry.Decoder("myformat") + require.NoError(t, err) + + assert.Equal(t, c, decoder) + } + + { + decoder, err := registry.Decoder("MYFORMAT") + require.NoError(t, err) + + assert.Equal(t, c, decoder) + } + }) + + t.Run("OverrideDefault", func(t *testing.T) { + registry := NewCodecRegistry() + + c := codec{} + + err := registry.RegisterCodec("yaml", c) + require.NoError(t, err) + + encoder, err := registry.Encoder("yaml") + require.NoError(t, err) + + assert.Equal(t, c, encoder) + + decoder, err := registry.Decoder("yaml") + require.NoError(t, err) + + assert.Equal(t, c, decoder) + }) }