@@ -22,6 +22,23 @@ func init() {
22
22
registerMetrics ()
23
23
}
24
24
25
+ func equalOrdersIgnoreClientOrderID (a , b types.SubmitOrder ) bool {
26
+ return a .Symbol == b .Symbol &&
27
+ a .Side == b .Side &&
28
+ a .Type == b .Type &&
29
+ a .Quantity == b .Quantity &&
30
+ a .Price == b .Price &&
31
+ a .AveragePrice == b .AveragePrice &&
32
+ a .StopPrice == b .StopPrice &&
33
+ a .Market == b .Market &&
34
+ a .TimeInForce == b .TimeInForce &&
35
+ a .GroupID == b .GroupID &&
36
+ a .MarginSideEffect == b .MarginSideEffect &&
37
+ a .ReduceOnly == b .ReduceOnly &&
38
+ a .ClosePosition == b .ClosePosition &&
39
+ a .Tag == b .Tag
40
+ }
41
+
25
42
func TestStrategy_checkRequiredInvestmentByQuantity (t * testing.T ) {
26
43
s := & Strategy {
27
44
logger : logrus .NewEntry (logrus .New ()),
@@ -605,9 +622,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
605
622
}
606
623
607
624
orderExecutor := gridmocks .NewMockOrderExecutor (mockCtrl )
608
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder ).Return ([]types.Order {
609
- {SubmitOrder : expectedSubmitOrder },
610
- }, nil )
625
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
626
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder )
627
+ return []types.Order {
628
+ {SubmitOrder : expectedSubmitOrder },
629
+ }, nil
630
+ })
611
631
s .orderExecutor = orderExecutor
612
632
613
633
s .handleOrderFilled (types.Order {
@@ -670,9 +690,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
670
690
}
671
691
672
692
orderExecutor := gridmocks .NewMockOrderExecutor (mockCtrl )
673
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder ).Return ([]types.Order {
674
- {SubmitOrder : expectedSubmitOrder },
675
- }, nil )
693
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
694
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder )
695
+ return []types.Order {
696
+ {SubmitOrder : expectedSubmitOrder },
697
+ }, nil
698
+ })
676
699
s .orderExecutor = orderExecutor
677
700
678
701
s .handleOrderFilled (types.Order {
@@ -755,9 +778,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
755
778
Market : s .Market ,
756
779
Tag : orderTag ,
757
780
}
758
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder ).Return ([]types.Order {
759
- {SubmitOrder : expectedSubmitOrder },
760
- }, nil )
781
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
782
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder )
783
+ return []types.Order {
784
+ {SubmitOrder : expectedSubmitOrder },
785
+ }, nil
786
+ })
761
787
762
788
expectedSubmitOrder2 := types.SubmitOrder {
763
789
Symbol : "BTCUSDT" ,
@@ -769,9 +795,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
769
795
Market : s .Market ,
770
796
Tag : orderTag ,
771
797
}
772
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder2 ).Return ([]types.Order {
773
- {SubmitOrder : expectedSubmitOrder2 },
774
- }, nil )
798
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
799
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder2 , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder2 )
800
+ return []types.Order {
801
+ {SubmitOrder : expectedSubmitOrder2 },
802
+ }, nil
803
+ })
775
804
776
805
s .orderExecutor = orderExecutor
777
806
@@ -863,9 +892,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
863
892
}
864
893
865
894
orderExecutor := gridmocks .NewMockOrderExecutor (mockCtrl )
866
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder ).Return ([]types.Order {
867
- {SubmitOrder : expectedSubmitOrder },
868
- }, nil )
895
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
896
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder )
897
+ return []types.Order {
898
+ {SubmitOrder : expectedSubmitOrder },
899
+ }, nil
900
+ })
869
901
870
902
expectedSubmitOrder2 := types.SubmitOrder {
871
903
Symbol : "BTCUSDT" ,
@@ -878,9 +910,12 @@ func TestStrategy_handleOrderFilled(t *testing.T) {
878
910
Tag : orderTag ,
879
911
}
880
912
881
- orderExecutor .EXPECT ().SubmitOrders (ctx , expectedSubmitOrder2 ).Return ([]types.Order {
882
- {SubmitOrder : expectedSubmitOrder2 },
883
- }, nil )
913
+ orderExecutor .EXPECT ().SubmitOrders (ctx , gomock .Any ()).DoAndReturn (func (ctx context.Context , order types.SubmitOrder ) (types.OrderSlice , error ) {
914
+ assert .True (t , equalOrdersIgnoreClientOrderID (expectedSubmitOrder2 , order ), "%+v is not equal to %+v" , order , expectedSubmitOrder2 )
915
+ return []types.Order {
916
+ {SubmitOrder : expectedSubmitOrder2 },
917
+ }, nil
918
+ })
884
919
s .orderExecutor = orderExecutor
885
920
886
921
s .handleOrderFilled (types.Order {
@@ -1142,4 +1177,4 @@ func Test_buildPinOrderMap(t *testing.T) {
1142
1177
_ , err := s .buildPinOrderMap (s .grid , openOrders )
1143
1178
assert .Error (err )
1144
1179
})
1145
- }
1180
+ }
0 commit comments