github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/order/match/periodicauction/impl_test.go (about) 1 //go:build ignore 2 3 package periodicauction 4 5 import ( 6 "testing" 7 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/x/dex" 10 orderkeeper "github.com/fibonacci-chain/fbc/x/order/keeper" 11 "github.com/fibonacci-chain/fbc/x/order/types" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func TestPaEngine_Run(t *testing.T) { 16 testInput := orderkeeper.CreateTestInput(t) 17 keeper := testInput.OrderKeeper 18 ctx := testInput.Ctx 19 tokenPair := dex.GetBuiltInTokenPair() 20 err := testInput.DexKeeper.SaveTokenPair(ctx, tokenPair) 21 require.Nil(t, err) 22 23 var startHeight int64 = 10 24 25 // mock orders 26 orders := []*types.Order{ 27 types.MockOrder(types.FormatOrderID(startHeight, 1), types.TestTokenPair, types.BuyOrder, "10.0", "1.0"), 28 types.MockOrder(types.FormatOrderID(startHeight, 2), types.TestTokenPair, types.SellOrder, "10.0", "0.5"), 29 types.MockOrder(types.FormatOrderID(startHeight, 3), types.TestTokenPair, types.SellOrder, "10.0", "2.5"), 30 } 31 orders[0].Sender = testInput.TestAddrs[0] 32 orders[1].Sender = testInput.TestAddrs[1] 33 orders[2].Sender = testInput.TestAddrs[1] 34 for i := 0; i < 3; i++ { 35 err := keeper.PlaceOrder(ctx, orders[i]) 36 require.NoError(t, err) 37 } 38 39 engine := &PaEngine{} 40 engine.Run(ctx, keeper) 41 42 // check order status 43 order0 := keeper.GetOrder(ctx, orders[0].OrderID) 44 order1 := keeper.GetOrder(ctx, orders[1].OrderID) 45 order2 := keeper.GetOrder(ctx, orders[2].OrderID) 46 require.EqualValues(t, types.OrderStatusFilled, order0.Status) 47 require.EqualValues(t, types.OrderStatusFilled, order1.Status) 48 require.EqualValues(t, types.OrderStatusOpen, order2.Status) 49 require.EqualValues(t, sdk.MustNewDecFromStr("2"), order2.RemainQuantity) 50 }