migrate test TestDeposits from gov to simapp

This commit is contained in:
Jonathan Gimeno 2020-03-02 15:52:43 +01:00
parent f403cda2ce
commit 3fa47df519
3 changed files with 40 additions and 27 deletions

View File

@ -0,0 +1,7 @@
package keeper_test
import "github.com/cosmos/cosmos-sdk/x/gov/types"
var (
TestProposal = types.NewTextProposal("Test", "description")
)

View File

@ -1,4 +1,4 @@
package keeper package keeper_test
import ( import (
"testing" "testing"
@ -6,93 +6,99 @@ import (
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
abci "github.com/tendermint/tendermint/abci/types"
"github.com/cosmos/cosmos-sdk/simapp"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
) )
func TestDeposits(t *testing.T) { func TestDeposits(t *testing.T) {
ctx, _, bk, keeper, _, _ := createTestInput(t, false, 100) app := simapp.Setup(false)
ctx := app.BaseApp.NewContext(false, abci.Header{})
TestAddrs := simapp.AddTestAddrsIncremental(app, ctx, 2, sdk.NewInt(10000000))
tp := TestProposal tp := TestProposal
proposal, err := keeper.SubmitProposal(ctx, tp) proposal, err := app.GovKeeper.SubmitProposal(ctx, tp)
require.NoError(t, err) require.NoError(t, err)
proposalID := proposal.ProposalID proposalID := proposal.ProposalID
fourStake := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.TokensFromConsensusPower(4))) fourStake := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.TokensFromConsensusPower(4)))
fiveStake := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.TokensFromConsensusPower(5))) fiveStake := sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.TokensFromConsensusPower(5)))
addr0Initial := bk.GetAllBalances(ctx, TestAddrs[0]) addr0Initial := app.BankKeeper.GetAllBalances(ctx, TestAddrs[0])
addr1Initial := bk.GetAllBalances(ctx, TestAddrs[1]) addr1Initial := app.BankKeeper.GetAllBalances(ctx, TestAddrs[1])
require.True(t, proposal.TotalDeposit.IsEqual(sdk.NewCoins())) require.True(t, proposal.TotalDeposit.IsEqual(sdk.NewCoins()))
// Check no deposits at beginning // Check no deposits at beginning
deposit, found := keeper.GetDeposit(ctx, proposalID, TestAddrs[1]) deposit, found := app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[1])
require.False(t, found) require.False(t, found)
proposal, ok := keeper.GetProposal(ctx, proposalID) proposal, ok := app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok) require.True(t, ok)
require.True(t, proposal.VotingStartTime.Equal(time.Time{})) require.True(t, proposal.VotingStartTime.Equal(time.Time{}))
// Check first deposit // Check first deposit
votingStarted, err := keeper.AddDeposit(ctx, proposalID, TestAddrs[0], fourStake) votingStarted, err := app.GovKeeper.AddDeposit(ctx, proposalID, TestAddrs[0], fourStake)
require.NoError(t, err) require.NoError(t, err)
require.False(t, votingStarted) require.False(t, votingStarted)
deposit, found = keeper.GetDeposit(ctx, proposalID, TestAddrs[0]) deposit, found = app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[0])
require.True(t, found) require.True(t, found)
require.Equal(t, fourStake, deposit.Amount) require.Equal(t, fourStake, deposit.Amount)
require.Equal(t, TestAddrs[0], deposit.Depositor) require.Equal(t, TestAddrs[0], deposit.Depositor)
proposal, ok = keeper.GetProposal(ctx, proposalID) proposal, ok = app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok) require.True(t, ok)
require.Equal(t, fourStake, proposal.TotalDeposit) require.Equal(t, fourStake, proposal.TotalDeposit)
require.Equal(t, addr0Initial.Sub(fourStake), bk.GetAllBalances(ctx, TestAddrs[0])) require.Equal(t, addr0Initial.Sub(fourStake), app.BankKeeper.GetAllBalances(ctx, TestAddrs[0]))
// Check a second deposit from same address // Check a second deposit from same address
votingStarted, err = keeper.AddDeposit(ctx, proposalID, TestAddrs[0], fiveStake) votingStarted, err = app.GovKeeper.AddDeposit(ctx, proposalID, TestAddrs[0], fiveStake)
require.NoError(t, err) require.NoError(t, err)
require.False(t, votingStarted) require.False(t, votingStarted)
deposit, found = keeper.GetDeposit(ctx, proposalID, TestAddrs[0]) deposit, found = app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[0])
require.True(t, found) require.True(t, found)
require.Equal(t, fourStake.Add(fiveStake...), deposit.Amount) require.Equal(t, fourStake.Add(fiveStake...), deposit.Amount)
require.Equal(t, TestAddrs[0], deposit.Depositor) require.Equal(t, TestAddrs[0], deposit.Depositor)
proposal, ok = keeper.GetProposal(ctx, proposalID) proposal, ok = app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok) require.True(t, ok)
require.Equal(t, fourStake.Add(fiveStake...), proposal.TotalDeposit) require.Equal(t, fourStake.Add(fiveStake...), proposal.TotalDeposit)
require.Equal(t, addr0Initial.Sub(fourStake).Sub(fiveStake), bk.GetAllBalances(ctx, TestAddrs[0])) require.Equal(t, addr0Initial.Sub(fourStake).Sub(fiveStake), app.BankKeeper.GetAllBalances(ctx, TestAddrs[0]))
// Check third deposit from a new address // Check third deposit from a new address
votingStarted, err = keeper.AddDeposit(ctx, proposalID, TestAddrs[1], fourStake) votingStarted, err = app.GovKeeper.AddDeposit(ctx, proposalID, TestAddrs[1], fourStake)
require.NoError(t, err) require.NoError(t, err)
require.True(t, votingStarted) require.True(t, votingStarted)
deposit, found = keeper.GetDeposit(ctx, proposalID, TestAddrs[1]) deposit, found = app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[1])
require.True(t, found) require.True(t, found)
require.Equal(t, TestAddrs[1], deposit.Depositor) require.Equal(t, TestAddrs[1], deposit.Depositor)
require.Equal(t, fourStake, deposit.Amount) require.Equal(t, fourStake, deposit.Amount)
proposal, ok = keeper.GetProposal(ctx, proposalID) proposal, ok = app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok) require.True(t, ok)
require.Equal(t, fourStake.Add(fiveStake...).Add(fourStake...), proposal.TotalDeposit) require.Equal(t, fourStake.Add(fiveStake...).Add(fourStake...), proposal.TotalDeposit)
require.Equal(t, addr1Initial.Sub(fourStake), bk.GetAllBalances(ctx, TestAddrs[1])) require.Equal(t, addr1Initial.Sub(fourStake), app.BankKeeper.GetAllBalances(ctx, TestAddrs[1]))
// Check that proposal moved to voting period // Check that proposal moved to voting period
proposal, ok = keeper.GetProposal(ctx, proposalID) proposal, ok = app.GovKeeper.GetProposal(ctx, proposalID)
require.True(t, ok) require.True(t, ok)
require.True(t, proposal.VotingStartTime.Equal(ctx.BlockHeader().Time)) require.True(t, proposal.VotingStartTime.Equal(ctx.BlockHeader().Time))
// Test deposit iterator // Test deposit iterator
// NOTE order of deposits is determined by the addresses // NOTE order of deposits is determined by the addresses
deposits := keeper.GetAllDeposits(ctx) deposits := app.GovKeeper.GetAllDeposits(ctx)
require.Len(t, deposits, 2) require.Len(t, deposits, 2)
require.Equal(t, deposits, keeper.GetDeposits(ctx, proposalID)) require.Equal(t, deposits, app.GovKeeper.GetDeposits(ctx, proposalID))
require.Equal(t, TestAddrs[0], deposits[0].Depositor) require.Equal(t, TestAddrs[0], deposits[0].Depositor)
require.Equal(t, fourStake.Add(fiveStake...), deposits[0].Amount) require.Equal(t, fourStake.Add(fiveStake...), deposits[0].Amount)
require.Equal(t, TestAddrs[1], deposits[1].Depositor) require.Equal(t, TestAddrs[1], deposits[1].Depositor)
require.Equal(t, fourStake, deposits[1].Amount) require.Equal(t, fourStake, deposits[1].Amount)
// Test Refund Deposits // Test Refund Deposits
deposit, found = keeper.GetDeposit(ctx, proposalID, TestAddrs[1]) deposit, found = app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[1])
require.True(t, found) require.True(t, found)
require.Equal(t, fourStake, deposit.Amount) require.Equal(t, fourStake, deposit.Amount)
keeper.RefundDeposits(ctx, proposalID) app.GovKeeper.RefundDeposits(ctx, proposalID)
deposit, found = keeper.GetDeposit(ctx, proposalID, TestAddrs[1]) deposit, found = app.GovKeeper.GetDeposit(ctx, proposalID, TestAddrs[1])
require.False(t, found) require.False(t, found)
require.Equal(t, addr0Initial, bk.GetAllBalances(ctx, TestAddrs[0])) require.Equal(t, addr0Initial, app.BankKeeper.GetAllBalances(ctx, TestAddrs[0]))
require.Equal(t, addr1Initial, bk.GetAllBalances(ctx, TestAddrs[1])) require.Equal(t, addr1Initial, app.BankKeeper.GetAllBalances(ctx, TestAddrs[1]))
} }