pgweb/pkg/client/codec_test.go
Matthieu Vachon 5803295174
Added binary codec base58 as well as improving the help for --binary-codec flag (#548)
* Added binary codec `base58` as well as improving the help for `--binary-codec` flag
* Added tests for base58
* Fixed tests

Co-authored-by: Matthieu Vachon <matt@streamingfast.io>
2022-01-27 22:10:01 -06:00

52 lines
1.2 KiB
Go

package client
import (
"errors"
"testing"
"github.com/stretchr/testify/assert"
)
func TestSetBinaryCodec(t *testing.T) {
examples := []struct {
input string
err error
}{
{input: CodecNone, err: nil},
{input: CodecBase58, err: nil},
{input: CodecBase64, err: nil},
{input: CodecHex, err: nil},
{input: "foobar", err: errors.New("invalid binary codec: foobar")},
}
for _, ex := range examples {
t.Run(ex.input, func(t *testing.T) {
val := BinaryCodec
defer func() {
BinaryCodec = val
}()
assert.Equal(t, ex.err, SetBinaryCodec(ex.input))
})
}
}
func Test_encodeBinaryData(t *testing.T) {
examples := []struct {
input string
expected string
encoding string
}{
{input: "hello world", expected: "hello world", encoding: CodecNone},
{input: "hello world", expected: "StV1DL6CwTryKyV", encoding: CodecBase58},
{input: "hello world", expected: "aGVsbG8gd29ybGQ=", encoding: CodecBase64},
{input: "hello world", expected: "68656c6c6f20776f726c64", encoding: CodecHex},
}
for _, ex := range examples {
t.Run(ex.input, func(t *testing.T) {
assert.Equal(t, ex.expected, encodeBinaryData([]byte(ex.input), ex.encoding))
})
}
}