mirror of
https://github.com/spf13/viper
synced 2024-12-22 03:27:03 +00:00
test(encoding): add tests for codec registry implementation
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
parent
d2221e2ef9
commit
2a1765daf8
1 changed files with 66 additions and 0 deletions
|
@ -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)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue