github.com/cosmos/cosmos-sdk@v0.50.10/x/group/proposal_test.go (about) 1 package group_test 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" 9 "github.com/cosmos/cosmos-sdk/x/group" 10 "github.com/cosmos/cosmos-sdk/x/group/module" 11 ) 12 13 // TestGogoUnmarshalProposal tests some weird behavior in gogoproto 14 // unmarshalling. 15 // This test serves as a showcase that we need to be careful when unmarshalling 16 // multiple times into the same reference. 17 func TestGogoUnmarshalProposal(t *testing.T) { 18 encodingConfig := moduletestutil.MakeTestEncodingConfig(module.AppModuleBasic{}) 19 cdc := encodingConfig.Codec 20 21 p1 := group.Proposal{Proposers: []string{"foo"}} 22 p2 := group.Proposal{Proposers: []string{"bar"}} 23 24 p1Bz, err := cdc.Marshal(&p1) 25 require.NoError(t, err) 26 p2Bz, err := cdc.Marshal(&p2) 27 require.NoError(t, err) 28 29 var p group.Proposal 30 err = cdc.Unmarshal(p1Bz, &p) 31 require.NoError(t, err) 32 33 var i group.Proposal 34 err = cdc.Unmarshal(p2Bz, &i) 35 require.NoError(t, err) 36 37 require.Len(t, p.Proposers, 1) 38 require.Len(t, i.Proposers, 1) 39 }