github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/staking/keeper/shares_test.go (about)

     1  package keeper
     2  
     3  import (
     4  	"testing"
     5  
     6  	sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types"
     7  	"github.com/fibonacci-chain/fbc/x/staking/types"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestAddShares(t *testing.T) {
    12  	ctx, _, keeper := CreateTestInput(t, false, 0)
    13  
    14  	shares := []sdk.Dec{
    15  		sdk.OneDec(),
    16  		sdk.OneDec(),
    17  		sdk.OneDec().MulInt64(100),
    18  	}
    19  
    20  	keeper.Keeper.SetShares(ctx, addrDels[0], addrVals[0], shares[0])
    21  	keeper.Keeper.SetShares(ctx, addrDels[1], addrVals[0], shares[1])
    22  	keeper.Keeper.SetShares(ctx, addrDels[2], addrVals[0], shares[2])
    23  
    24  	var sharesExportedSlice []types.SharesExported
    25  	keeper.IterateShares(ctx,
    26  		func(_ int64, delAddr sdk.AccAddress, valAddr sdk.ValAddress, shares types.Shares) (stop bool) {
    27  			sharesExportedSlice = append(sharesExportedSlice, types.NewSharesExported(delAddr, valAddr, shares))
    28  			return false
    29  		})
    30  
    31  	require.True(t, len(sharesExportedSlice) == 3)
    32  
    33  	shares1, found := keeper.GetShares(ctx, addrDels[0], addrVals[0])
    34  	require.True(t, found)
    35  	require.True(t, shares1.Equal(sdk.OneDec()))
    36  
    37  	shares2, found := keeper.GetShares(ctx, addrDels[0], addrVals[2])
    38  	require.False(t, found)
    39  	require.True(t, shares2.IsNil())
    40  
    41  	keeper.DeleteShares(ctx, addrVals[0], addrDels[0])
    42  	keeper.DeleteShares(ctx, addrVals[1], addrDels[0])
    43  	_, found = keeper.GetShares(ctx, addrDels[0], addrVals[0])
    44  	require.False(t, found)
    45  }