50 lines
1006 B
Go
50 lines
1006 B
Go
package codec_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/cosmos/cosmos-sdk/codec/types"
|
|
"github.com/cosmos/cosmos-sdk/testutil/testdata"
|
|
)
|
|
|
|
func TestMarshalYAML(t *testing.T) {
|
|
dog := &testdata.Dog{
|
|
Size_: "small",
|
|
Name: "Spot",
|
|
}
|
|
any, err := types.NewAnyWithValue(dog)
|
|
require.NoError(t, err)
|
|
hasAnimal := &testdata.HasAnimal{
|
|
Animal: any,
|
|
X: 0,
|
|
}
|
|
|
|
// proto
|
|
protoCdc := codec.NewProtoCodec(NewTestInterfaceRegistry())
|
|
bz, err := codec.MarshalYAML(protoCdc, hasAnimal)
|
|
require.NoError(t, err)
|
|
require.Equal(t, `animal:
|
|
'@type': /testdata.Dog
|
|
name: Spot
|
|
size: small
|
|
x: "0"
|
|
`, string(bz))
|
|
|
|
// amino
|
|
aminoCdc := codec.NewAminoCodec(&codec.LegacyAmino{testdata.NewTestAmino()})
|
|
bz, err = codec.MarshalYAML(aminoCdc, hasAnimal)
|
|
require.NoError(t, err)
|
|
require.Equal(t, `type: testdata/HasAnimal
|
|
value:
|
|
animal:
|
|
type: testdata/Dog
|
|
value:
|
|
name: Spot
|
|
size: small
|
|
`, string(bz))
|
|
}
|