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  }