56 lines
993 B
Go
56 lines
993 B
Go
|
package yamlutil
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"testing"
|
||
|
|
||
|
yaml "gopkg.in/yaml.v2"
|
||
|
)
|
||
|
|
||
|
func TestBlob(t *testing.T) {
|
||
|
testCases := []struct {
|
||
|
descr string
|
||
|
in Blob
|
||
|
exp string
|
||
|
}{
|
||
|
{
|
||
|
descr: "empty",
|
||
|
in: Blob(""),
|
||
|
exp: `""`,
|
||
|
},
|
||
|
{
|
||
|
descr: "zero",
|
||
|
in: Blob{0},
|
||
|
exp: "AA==",
|
||
|
},
|
||
|
{
|
||
|
descr: "zeros",
|
||
|
in: Blob{0, 0, 0},
|
||
|
exp: "AAAA",
|
||
|
},
|
||
|
{
|
||
|
descr: "foo",
|
||
|
in: Blob("foo"),
|
||
|
exp: "Zm9v",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, test := range testCases {
|
||
|
t.Run(test.descr, func(t *testing.T) {
|
||
|
out, err := yaml.Marshal(test.in)
|
||
|
if err != nil {
|
||
|
t.Fatalf("error marshaling %q: %v", test.in, err)
|
||
|
} else if test.exp+"\n" != string(out) {
|
||
|
t.Fatalf("marshal exp:%q got:%q", test.exp+"\n", out)
|
||
|
}
|
||
|
|
||
|
var blob Blob
|
||
|
if err := yaml.Unmarshal(out, &blob); err != nil {
|
||
|
t.Fatalf("error unmarshaling %q: %v", out, err)
|
||
|
} else if !bytes.Equal([]byte(blob), []byte(test.in)) {
|
||
|
t.Fatalf("unmarshal exp:%q got:%q", test.in, blob)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|