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 }