diff --git a/x/stake/keeper_test.go b/x/stake/keeper_test.go index 8156071f10..3a59f27ba3 100644 --- a/x/stake/keeper_test.go +++ b/x/stake/keeper_test.go @@ -685,3 +685,44 @@ func TestPool(t *testing.T) { resPool = keeper.GetPool(ctx) assert.Equal(t, expPool, resPool) } + +func TestValidatorsetKeeper(t *testing.T) { + ctx, _, keeper := createTestInput(t, false, 0) + + total := int64(0) + amts := []int64{9, 8, 7, 6, 5} + var candidates [5]Candidate + for i, amt := range amts { + candidates[i] = Candidate{ + Address: addrVals[i], + PubKey: pks[i], + Assets: sdk.NewRat(amt), + Liabilities: sdk.NewRat(amt), + } + + keeper.setCandidate(ctx, candidates[i]) + + total += amt + } + + assert.Equal(t, 5, keeper.Size(ctx)) + + for _, addr := range addrVals[:5] { + assert.True(t, keeper.IsValidator(ctx, addr)) + } + for _, addr := range addrVals[5:] { + assert.False(t, keeper.IsValidator(ctx, addr)) + } + + for i, can := range candidates { + index, val := keeper.GetByAddress(ctx, can.Address) + assert.Equal(t, i, index) + assert.Equal(t, can.validator().abciValidator(keeper.cdc), *val) + } + + for i, can := range candidates { + assert.Equal(t, can.validator().abciValidator(keeper.cdc), *keeper.GetByIndex(ctx, i)) + } + + assert.Equal(t, total, keeper.TotalPower(ctx).Evaluate()) +}