github.com/cosmos/cosmos-sdk@v0.50.10/x/group/internal/orm/genesis_test.go (about)

     1  package orm
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	storetypes "cosmossdk.io/store/types"
     9  
    10  	"github.com/cosmos/cosmos-sdk/codec"
    11  	"github.com/cosmos/cosmos-sdk/codec/types"
    12  	"github.com/cosmos/cosmos-sdk/testutil/testdata"
    13  )
    14  
    15  func TestImportExportTableData(t *testing.T) {
    16  	interfaceRegistry := types.NewInterfaceRegistry()
    17  	cdc := codec.NewProtoCodec(interfaceRegistry)
    18  
    19  	table, err := NewAutoUInt64Table(AutoUInt64TablePrefix, AutoUInt64TableSeqPrefix, &testdata.TableModel{}, cdc)
    20  	require.NoError(t, err)
    21  
    22  	ctx := NewMockContext()
    23  	store := ctx.KVStore(storetypes.NewKVStoreKey("test"))
    24  
    25  	tms := []*testdata.TableModel{
    26  		{
    27  			Id:       1,
    28  			Name:     "my test 1",
    29  			Number:   123,
    30  			Metadata: []byte("metadata 1"),
    31  		},
    32  		{
    33  			Id:       2,
    34  			Name:     "my test 2",
    35  			Number:   456,
    36  			Metadata: []byte("metadata 2"),
    37  		},
    38  	}
    39  
    40  	err = table.Import(store, tms, 2)
    41  	require.NoError(t, err)
    42  
    43  	for _, g := range tms {
    44  		var loaded testdata.TableModel
    45  		_, err := table.GetOne(store, g.Id, &loaded)
    46  		require.NoError(t, err)
    47  
    48  		require.Equal(t, g, &loaded)
    49  	}
    50  
    51  	var exported []*testdata.TableModel
    52  	seq, err := table.Export(store, &exported)
    53  	require.NoError(t, err)
    54  	require.Equal(t, seq, uint64(2))
    55  
    56  	for i, g := range exported {
    57  		require.Equal(t, g, tms[i])
    58  	}
    59  }