write test for keeper
This commit is contained in:
parent
4b0c367afa
commit
67a943d9df
|
@ -2,7 +2,6 @@ package stake
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
|
@ -31,14 +30,14 @@ var (
|
||||||
candidate2 = Candidate{
|
candidate2 = Candidate{
|
||||||
Address: addrVal2,
|
Address: addrVal2,
|
||||||
PubKey: pk2,
|
PubKey: pk2,
|
||||||
Assets: sdk.NewRat(9),
|
Assets: sdk.NewRat(8),
|
||||||
Liabilities: sdk.NewRat(9),
|
Liabilities: sdk.NewRat(8),
|
||||||
}
|
}
|
||||||
candidate3 = Candidate{
|
candidate3 = Candidate{
|
||||||
Address: addrVal3,
|
Address: addrVal3,
|
||||||
PubKey: pk3,
|
PubKey: pk3,
|
||||||
Assets: sdk.NewRat(9),
|
Assets: sdk.NewRat(7),
|
||||||
Liabilities: sdk.NewRat(9),
|
Liabilities: sdk.NewRat(7),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -298,7 +297,7 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
||||||
assert.Equal(t, 0, len(acc))
|
assert.Equal(t, 0, len(acc))
|
||||||
keeper.setCandidate(ctx, candidates[0])
|
keeper.setCandidate(ctx, candidates[0])
|
||||||
keeper.setCandidate(ctx, candidates[1])
|
keeper.setCandidate(ctx, candidates[1])
|
||||||
//_ = keeper.GetValidators(ctx) // to init recent validator set
|
_ = keeper.GetValidators(ctx) // to init recent validator set
|
||||||
acc = keeper.getAccUpdateValidators(ctx)
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
validatorsEqual(t, validators, acc)
|
validatorsEqual(t, validators, acc)
|
||||||
|
|
||||||
|
@ -309,44 +308,46 @@ func TestGetAccUpdateValidators(t *testing.T) {
|
||||||
validatorsEqual(t, validators, acc)
|
validatorsEqual(t, validators, acc)
|
||||||
|
|
||||||
acc = keeper.getAccUpdateValidators(ctx)
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
fmt.Printf("%+v\n", acc)
|
|
||||||
|
|
||||||
// test from something to nothing
|
// test from something to nothing
|
||||||
keeper.removeCandidate(ctx, candidates[0].Address)
|
keeper.removeCandidate(ctx, candidates[0].Address)
|
||||||
keeper.removeCandidate(ctx, candidates[1].Address)
|
keeper.removeCandidate(ctx, candidates[1].Address)
|
||||||
acc = keeper.getAccUpdateValidators(ctx)
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
fmt.Printf("%+v\n", acc)
|
|
||||||
assert.Equal(t, 2, len(acc))
|
assert.Equal(t, 2, len(acc))
|
||||||
assert.Equal(t, validators[0].Address, acc[0].Address)
|
assert.Equal(t, validators[0].Address, acc[0].Address)
|
||||||
assert.Equal(t, 0, acc[0].VotingPower.Evaluate())
|
assert.Equal(t, int64(0), acc[0].VotingPower.Evaluate())
|
||||||
assert.Equal(t, validators[1].Address, acc[1].Address)
|
assert.Equal(t, validators[1].Address, acc[1].Address)
|
||||||
assert.Equal(t, 0, acc[1].VotingPower.Evaluate())
|
assert.Equal(t, int64(0), acc[1].VotingPower.Evaluate())
|
||||||
|
|
||||||
//// test single value change
|
// test single value change
|
||||||
//amts[0] = 600
|
amts[0] = 600
|
||||||
//candidates, validators = genCandidates(amts)
|
candidates, validators = genCandidates(amts)
|
||||||
//setCandidates(ctx, candidates)
|
keeper.setCandidate(ctx, candidates[0])
|
||||||
//acc = keeper.getAccUpdateValidators(ctx)
|
keeper.setCandidate(ctx, candidates[1])
|
||||||
//validatorsEqual(t, validators, acc)
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
|
validatorsEqual(t, validators, acc)
|
||||||
|
|
||||||
//// test multiple value change
|
// test multiple value change
|
||||||
//amts[0] = 200
|
amts[0] = 200
|
||||||
//amts[1] = 0
|
amts[1] = 0
|
||||||
//candidates, validators = genCandidates(amts)
|
candidates, validators = genCandidates(amts)
|
||||||
//setCandidates(ctx, candidates)
|
keeper.setCandidate(ctx, candidates[0])
|
||||||
//acc = keeper.getAccUpdateValidators(ctx)
|
keeper.setCandidate(ctx, candidates[1])
|
||||||
//validatorsEqual(t, validators, acc)
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
|
validatorsEqual(t, validators, acc)
|
||||||
|
|
||||||
//// test validator added at the beginning
|
// test validator added at the beginning
|
||||||
//// test validator added in the middle
|
// test validator added in the middle
|
||||||
//// test validator added at the end
|
// test validator added at the end
|
||||||
//amts = append(amts, 100)
|
amts = append(amts, 100)
|
||||||
//candidates, validators = genCandidates(amts)
|
candidates, validators = genCandidates(amts)
|
||||||
//setCandidates(ctx, candidates)
|
keeper.setCandidate(ctx, candidates[0])
|
||||||
//acc = keeper.getAccUpdateValidators(ctx)
|
keeper.setCandidate(ctx, candidates[1])
|
||||||
//validatorsEqual(t, validators, acc)
|
keeper.setCandidate(ctx, candidates[2])
|
||||||
|
acc = keeper.getAccUpdateValidators(ctx)
|
||||||
|
validatorsEqual(t, validators, acc)
|
||||||
|
|
||||||
//// test multiple validators removed
|
// test multiple validators removed
|
||||||
}
|
}
|
||||||
|
|
||||||
// clear the tracked changes to the validator set
|
// clear the tracked changes to the validator set
|
||||||
|
@ -376,14 +377,32 @@ func TestClearAccUpdateValidators(t *testing.T) {
|
||||||
|
|
||||||
// test if is a validator from the last update
|
// test if is a validator from the last update
|
||||||
func TestIsRecentValidator(t *testing.T) {
|
func TestIsRecentValidator(t *testing.T) {
|
||||||
//TODO
|
ctx, _, keeper := createTestInput(t, nil, false, 0)
|
||||||
|
|
||||||
// test that an empty validator set doesn't have any validators
|
// test that an empty validator set doesn't have any validators
|
||||||
|
validators := keeper.GetValidators(ctx)
|
||||||
|
assert.Equal(t, 0, len(validators))
|
||||||
|
|
||||||
// get the validators for the first time
|
// get the validators for the first time
|
||||||
|
keeper.setCandidate(ctx, candidate1)
|
||||||
|
keeper.setCandidate(ctx, candidate2)
|
||||||
|
validators = keeper.GetValidators(ctx)
|
||||||
|
require.Equal(t, 2, len(validators))
|
||||||
|
assert.Equal(t, candidate1.validator(), validators[0])
|
||||||
|
assert.Equal(t, candidate2.validator(), validators[1])
|
||||||
|
|
||||||
// test a basic retrieve of something that should be a recent validator
|
// test a basic retrieve of something that should be a recent validator
|
||||||
|
assert.True(t, keeper.IsRecentValidator(ctx, candidate1.Address))
|
||||||
|
assert.True(t, keeper.IsRecentValidator(ctx, candidate2.Address))
|
||||||
|
|
||||||
// test a basic retrieve of something that should not be a recent validator
|
// test a basic retrieve of something that should not be a recent validator
|
||||||
|
assert.False(t, keeper.IsRecentValidator(ctx, candidate3.Address))
|
||||||
|
|
||||||
// remove that validator, but don't retrieve the recent validator group
|
// remove that validator, but don't retrieve the recent validator group
|
||||||
|
keeper.removeCandidate(ctx, candidate1.Address)
|
||||||
|
|
||||||
// test that removed validator is not considered a recent validator
|
// test that removed validator is not considered a recent validator
|
||||||
|
assert.False(t, keeper.IsRecentValidator(ctx, candidate1.Address))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParams(t *testing.T) {
|
func TestParams(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue