706caa44bf
- Adds binary serialization into hex/base64 - Default codec is base64 - Codec can be changed via `--binary-codec` CLI option
50 lines
1.1 KiB
Go
50 lines
1.1 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: 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: "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))
|
|
})
|
|
}
|
|
}
|