github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/order/keeper/disk_cache_test.go (about) 1 //go:build ignore 2 3 package keeper 4 5 import ( 6 "testing" 7 8 "github.com/fibonacci-chain/fbc/x/common" 9 10 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 11 "github.com/fibonacci-chain/fbc/x/order/types" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestGetOrderIDsMapCopy(t *testing.T) { 16 testInput := CreateTestInputWithBalance(t, 1, 100) 17 keeper := testInput.OrderKeeper 18 19 keeper.diskCache.setOrderIDs("k1", []string{"v1", "v2"}) 20 keeper.diskCache.setOrderIDs("k2", []string{"v3", "v4"}) 21 keeper.diskCache.setOrderIDs("k3", []string{}) 22 keeper.diskCache.setOrderIDs("k4", nil) 23 idMap := keeper.diskCache.GetOrderIDsMapCopy() 24 25 require.EqualValues(t, 2, len(idMap.Data)) 26 idMap.Data["k1"][0] = "update v1" 27 idMap.Data["k1"][1] = "update v2" 28 idMap.Data["k2"][0] = "update v3" 29 idMap.Data["k2"][1] = "update v4" 30 idMap.Data["k3"] = nil 31 32 idMap2 := keeper.diskCache.GetOrderIDsMapCopy() 33 require.EqualValues(t, 2, len(idMap2.Data)) 34 require.EqualValues(t, "v1", idMap2.Data["k1"][0]) 35 require.EqualValues(t, "v2", idMap2.Data["k1"][1]) 36 require.EqualValues(t, "v3", idMap2.Data["k2"][0]) 37 require.EqualValues(t, "v4", idMap2.Data["k2"][1]) 38 } 39 40 func TestKeeper_SetBlockOrderNum(t *testing.T) { 41 testInput := CreateTestInputWithBalance(t, 1, 100) 42 keeper := testInput.OrderKeeper 43 ctx := testInput.Ctx 44 45 keeper.SetBlockOrderNum(ctx, 10, 88) 46 require.EqualValues(t, 88, keeper.GetBlockOrderNum(ctx, 10)) 47 } 48 49 func TestKeeper_DropBlockOrderNum(t *testing.T) { 50 testInput := CreateTestInputWithBalance(t, 1, 100) 51 keeper := testInput.OrderKeeper 52 ctx := testInput.Ctx 53 54 keeper.SetBlockOrderNum(ctx, 10, 88) 55 keeper.DropBlockOrderNum(ctx, 10) 56 require.NotEqual(t, 88, keeper.GetBlockOrderNum(ctx, 10)) 57 } 58 59 func TestKeeper_SetExpireBlockHeight(t *testing.T) { 60 testInput := CreateTestInput(t) 61 keeper := testInput.OrderKeeper 62 ctx := testInput.Ctx 63 64 var blockHeight int64 = 10 65 expireBlockHeight := []int64{1, 2} 66 require.EqualValues(t, []int64{}, keeper.GetExpireBlockHeight(ctx, blockHeight)) 67 keeper.SetExpireBlockHeight(ctx, blockHeight, expireBlockHeight) 68 require.EqualValues(t, expireBlockHeight, keeper.GetExpireBlockHeight(ctx, blockHeight)) 69 keeper.DropExpireBlockHeight(ctx, blockHeight) 70 require.EqualValues(t, []int64{}, keeper.GetExpireBlockHeight(ctx, blockHeight)) 71 } 72 73 func TestKeeper_StoreOrderIDsMap(t *testing.T) { 74 testInput := CreateTestInput(t) 75 keeper := testInput.OrderKeeper 76 ctx := testInput.Ctx 77 78 orderIDs := []string{"ID0000000010-1", "ID0000000010-2", "ID0000000010-3"} 79 //key xxb_fibo:10.00000000:BUY 80 keeper.StoreOrderIDsMap(ctx, "xxb_"+common.NativeToken+":10.00000000:BUY", orderIDs) 81 82 require.EqualValues(t, 0, len(keeper.diskCache.orderIDsMap.Data)) 83 } 84 85 func TestFlushCache(t *testing.T) { 86 testInput := CreateTestInput(t) 87 dcache := newDiskCache() 88 89 //reset 90 dcache.reset() 91 92 dcache.setOpenNum(6) 93 require.EqualValues(t, 6, dcache.getOpenNum()) 94 95 //store order number 96 dcache.setStoreOrderNum(88) 97 dcache.DecreaseStoreOrderNum(1) 98 require.EqualValues(t, 87, dcache.storeOrderNum) 99 100 dcache.setLastPrice(types.TestTokenPair, sdk.MustNewDecFromStr("11.0")) 101 order := mockOrder("", types.TestTokenPair, types.BuyOrder, "8", "1") 102 order.Sender = testInput.TestAddrs[0] 103 104 //insert & remove order 105 dcache.insertOrder(order) 106 require.EqualValues(t, 7, dcache.getOpenNum()) 107 require.EqualValues(t, sdk.MustNewDecFromStr("11"), dcache.getLastPrice(types.TestTokenPair)) 108 require.EqualValues(t, sdk.MustNewDecFromStr("0"), dcache.getLastPrice(types.TestTokenPair+"a")) 109 require.EqualValues(t, 1, len(dcache.GetUpdatedOrderIDKeys())) 110 require.EqualValues(t, 1, len(dcache.GetUpdatedDepthbookKeys())) 111 require.EqualValues(t, 1, len(dcache.getOrderIDs("xxb_"+common.NativeToken+":8.000000000000000000:BUY"))) 112 dcache.removeOrder(order) 113 require.EqualValues(t, 6, dcache.openNum) 114 115 //close order 116 dcache.closeOrder("ID0000000010-1") 117 require.EqualValues(t, 2, len(dcache.GetClosedOrderIDs())) 118 119 mapdata := dcache.GetOrderIDsMapCopy() 120 require.Equal(t, make(map[string][]string), mapdata.Data) 121 122 } 123 124 func TestGetProductsFromDepthBookMap(t *testing.T) { 125 testInput := CreateTestInputWithBalance(t, 1, 100) 126 keeper := testInput.OrderKeeper 127 product := types.TestTokenPair 128 depthBook := types.DepthBook{} 129 order := mockOrder("", types.TestTokenPair, types.BuyOrder, "10.0", "1.0") 130 depthBook.InsertOrder(order) 131 keeper.SetDepthBook(product, &depthBook) 132 productsList := keeper.GetProductsFromDepthBookMap() 133 require.EqualValues(t, 1, len(productsList)) 134 require.EqualValues(t, product, productsList[0]) 135 }