cosmos-sdk/cmd/gaia/app/app_test.go

74 lines
1.8 KiB
Go
Raw Normal View History

2018-04-06 22:12:00 -07:00
package app
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/wire"
2018-04-06 22:12:00 -07:00
"github.com/cosmos/cosmos-sdk/x/auth"
2018-04-06 22:50:46 -07:00
"github.com/cosmos/cosmos-sdk/x/stake"
2018-04-06 22:12:00 -07:00
abci "github.com/tendermint/abci/types"
crypto "github.com/tendermint/go-crypto"
dbm "github.com/tendermint/tmlibs/db"
"github.com/tendermint/tmlibs/log"
)
2018-04-06 22:50:46 -07:00
func setGenesis(gapp *GaiaApp, accs ...*auth.BaseAccount) error {
2018-04-06 22:12:00 -07:00
genaccs := make([]GenesisAccount, len(accs))
for i, acc := range accs {
genaccs[i] = NewGenesisAccount(acc)
}
genesisState := GenesisState{
2018-04-06 22:50:46 -07:00
Accounts: genaccs,
StakeData: stake.DefaultGenesisState(),
2018-04-06 22:12:00 -07:00
}
stateBytes, err := wire.MarshalJSONIndent(gapp.cdc, genesisState)
2018-04-06 22:12:00 -07:00
if err != nil {
return err
}
// Initialize the chain
vals := []abci.Validator{}
2018-06-04 16:42:01 -07:00
gapp.InitChain(abci.RequestInitChain{Validators: vals, AppStateBytes: stateBytes})
2018-04-06 22:12:00 -07:00
gapp.Commit()
return nil
}
func TestGenesis(t *testing.T) {
2018-06-07 21:46:27 -07:00
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "sdk/app")
db := dbm.NewMemDB()
gapp := NewGaiaApp(logger, db)
2018-04-06 22:12:00 -07:00
// Construct some genesis bytes to reflect GaiaAccount
pk := crypto.GenPrivKeyEd25519().PubKey()
addr := pk.Address()
coins, err := sdk.ParseCoins("77foocoin,99barcoin")
require.Nil(t, err)
2018-04-06 22:50:46 -07:00
baseAcc := &auth.BaseAccount{
2018-04-06 22:12:00 -07:00
Address: addr,
Coins: coins,
}
2018-04-06 22:50:46 -07:00
err = setGenesis(gapp, baseAcc)
require.Nil(t, err)
2018-04-06 22:12:00 -07:00
// A checkTx context
ctx := gapp.BaseApp.NewContext(true, abci.Header{})
res1 := gapp.accountMapper.GetAccount(ctx, baseAcc.Address)
assert.Equal(t, baseAcc, res1)
// reload app and ensure the account is still there
2018-06-07 21:46:27 -07:00
gapp = NewGaiaApp(logger, db)
2018-04-06 22:12:00 -07:00
ctx = gapp.BaseApp.NewContext(true, abci.Header{})
res1 = gapp.accountMapper.GetAccount(ctx, baseAcc.Address)
assert.Equal(t, baseAcc, res1)
}