github.com/status-im/status-go@v1.1.0/services/wallet/balance/simple_cache_test.go (about)

     1  package balance
     2  
     3  import (
     4  	"math/big"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/ethereum/go-ethereum/common"
    10  )
    11  
    12  func Test_simpleCacheAll(t *testing.T) {
    13  	cache := newSimpleCache()
    14  
    15  	// init args
    16  	block := big.NewInt(1)
    17  	chainID := uint64(1)
    18  	account := common.Address{1}
    19  	balance := big.NewInt(1)
    20  
    21  	// Test balance
    22  	cache.AddBalance(account, chainID, block, balance)
    23  	require.Equal(t, 1, cache.BalanceSize(account, chainID))
    24  	require.Equal(t, 0, cache.NonceSize(account, chainID))
    25  
    26  	balRes := cache.GetBalance(account, chainID, block)
    27  	require.Equal(t, balance, balRes)
    28  
    29  	// Test nonce
    30  	cache = newSimpleCache()
    31  	nonce := int64(2)
    32  	cache.AddNonce(account, chainID, block, &nonce)
    33  	require.Equal(t, 1, cache.NonceSize(account, chainID))
    34  	require.Equal(t, 0, cache.BalanceSize(account, chainID))
    35  
    36  	nonceRes := cache.GetNonce(account, chainID, block)
    37  	require.Equal(t, nonce, *nonceRes)
    38  
    39  	// Test nonceRange size after adding nonce
    40  	cache = newSimpleCache()
    41  	cache.AddNonce(account, chainID, block, &nonce)
    42  	require.Equal(t, 1, cache.nonceRangeCache.size(account, chainID))
    43  	require.Equal(t, 1, len(cache.nonceRangeCache.sortedRanges))
    44  }