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

     1  //go:build ignore
     2  
     3  package keeper
     4  
     5  import (
     6  	"testing"
     7  
     8  	"github.com/fibonacci-chain/fbc/x/order/types"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestGetLockedProductsCopy(t *testing.T) {
    13  
    14  	testInput := createTestInput(t)
    15  	keeper := testInput.DexKeeper
    16  	ctx := testInput.Ctx
    17  
    18  	productLock1 := &types.ProductLock{
    19  		BlockHeight: 1,
    20  	}
    21  	productLock2 := &types.ProductLock{
    22  		BlockHeight: 2,
    23  	}
    24  	keeper.LockTokenPair(ctx, "p1", productLock1)
    25  	keeper.LockTokenPair(ctx, "p2", productLock2)
    26  
    27  	copy := keeper.GetLockedProductsCopy(ctx)
    28  	require.EqualValues(t, 1, copy.Data["p1"].BlockHeight)
    29  	require.EqualValues(t, 2, copy.Data["p2"].BlockHeight)
    30  
    31  	copy.Data["p1"].BlockHeight = 10
    32  	copy.Data["p2"].BlockHeight = 20
    33  
    34  	copy2 := keeper.GetLockedProductsCopy(ctx)
    35  	require.EqualValues(t, 1, copy2.Data["p1"].BlockHeight)
    36  	require.EqualValues(t, 2, copy2.Data["p2"].BlockHeight)
    37  
    38  	require.NotEqual(t, copy.Data["p1"].BlockHeight, copy2.Data["p1"].BlockHeight)
    39  	require.NotEqual(t, copy.Data["p2"].BlockHeight, copy2.Data["p2"].BlockHeight)
    40  }
    41  
    42  func TestProductLockMap(t *testing.T) {
    43  	testInput := createTestInput(t)
    44  	keeper := testInput.DexKeeper
    45  	ctx := testInput.Ctx
    46  
    47  	productLock1 := &types.ProductLock{
    48  		BlockHeight: 1,
    49  	}
    50  	productLock2 := &types.ProductLock{
    51  		BlockHeight: 2,
    52  	}
    53  	keeper.LockTokenPair(ctx, "p1", productLock1)
    54  	keeper.LockTokenPair(ctx, "p2", productLock2)
    55  
    56  	lockMap := keeper.GetLockedProductsCopy(ctx)
    57  	require.EqualValues(t, 2, len(lockMap.Data))
    58  	require.EqualValues(t, 1, lockMap.Data["p1"].BlockHeight)
    59  	require.True(t, keeper.IsAnyProductLocked(ctx))
    60  	lockMapDb := keeper.LoadProductLocks(ctx)
    61  	require.True(t, lockMapDb.Data["p1"] != nil)
    62  	require.True(t, lockMapDb.Data["p2"] != nil)
    63  	require.EqualValues(t, 2, len(lockMapDb.Data))
    64  
    65  	// unlock
    66  	keeper.UnlockTokenPair(ctx, "p1")
    67  	require.False(t, keeper.IsTokenPairLocked(ctx, "p1"))
    68  
    69  	lockMap = keeper.GetLockedProductsCopy(ctx)
    70  	require.EqualValues(t, 1, len(lockMap.Data))
    71  	require.EqualValues(t, 2, lockMap.Data["p2"].BlockHeight)
    72  	require.True(t, keeper.IsAnyProductLocked(ctx))
    73  
    74  	// unlock all
    75  	keeper.UnlockTokenPair(ctx, "p2")
    76  	require.False(t, keeper.IsAnyProductLocked(ctx))
    77  }