github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/distribution/genesis_test.go (about) 1 package distribution 2 3 import ( 4 "testing" 5 6 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 7 "github.com/fibonacci-chain/fbc/x/distribution/keeper" 8 "github.com/fibonacci-chain/fbc/x/distribution/types" 9 "github.com/stretchr/testify/require" 10 ) 11 12 type testParam struct { 13 commission sdk.SysCoins 14 } 15 16 func getTestParams() []testParam { 17 return []testParam{ 18 {keeper.NewTestSysCoins(1000, 0)}, 19 {keeper.NewTestSysCoins(150, 2)}, 20 {keeper.NewTestSysCoins(50, 8)}, 21 {nil}, 22 } 23 } 24 25 // InitGenesis sets distribution information for genesis 26 func TestInitGenesis(t *testing.T) { 27 tests := getTestParams() 28 length := len(tests) 29 ctx, _, k, _, supplyKeeper := keeper.CreateTestInputDefault(t, false, 1000) 30 31 valOpAddrs, _, valConsAddrs := keeper.GetTestAddrs() 32 dwis := make([]DelegatorWithdrawInfo, length) 33 accs := make([]ValidatorAccumulatedCommissionRecord, length) 34 for i, valAddr := range valOpAddrs { 35 accs[i].ValidatorAddress = valAddr 36 accs[i].Accumulated = tests[i].commission 37 dwis[i].DelegatorAddress, dwis[i].WithdrawAddress = keeper.TestAddrs[i*2], keeper.TestAddrs[i*2+1] 38 } 39 40 genesisState := NewGenesisState(types.DefaultParams(), types.InitialFeePool(), dwis, valConsAddrs[0], accs) 41 InitGenesis(ctx, k, supplyKeeper, genesisState) 42 require.True(t, k.GetFeePoolCommunityCoins(ctx).IsZero()) 43 require.Equal(t, genesisState.Params.CommunityTax, k.GetCommunityTax(ctx)) 44 require.Equal(t, genesisState.Params.WithdrawAddrEnabled, k.GetWithdrawAddrEnabled(ctx)) 45 require.Equal(t, genesisState.PreviousProposer, k.GetPreviousProposerConsAddr(ctx)) 46 for i := range accs { 47 require.Equal(t, genesisState.DelegatorWithdrawInfos[i].WithdrawAddress, 48 k.GetDelegatorWithdrawAddr(ctx, dwis[i].DelegatorAddress)) 49 require.Equal(t, genesisState.ValidatorAccumulatedCommissions[i].Accumulated, 50 k.GetValidatorAccumulatedCommission(ctx, accs[i].ValidatorAddress)) 51 require.Equal(t, tests[i].commission, 52 k.GetValidatorAccumulatedCommission(ctx, accs[i].ValidatorAddress)) 53 } 54 55 actualGenesis := ExportGenesis(ctx, k) 56 require.Equal(t, genesisState.Params.CommunityTax, actualGenesis.Params.CommunityTax) 57 require.Equal(t, genesisState.Params.WithdrawAddrEnabled, actualGenesis.Params.WithdrawAddrEnabled) 58 require.ElementsMatch(t, genesisState.DelegatorWithdrawInfos, actualGenesis.DelegatorWithdrawInfos) 59 require.Equal(t, genesisState.PreviousProposer, actualGenesis.PreviousProposer) 60 require.ElementsMatch(t, genesisState.ValidatorAccumulatedCommissions, actualGenesis.ValidatorAccumulatedCommissions) 61 }