(index1 int, index2 int)
| 41 | func (r *MyReceiver) OnReceiveAccountMessage(value *proto.AccountMessage) { r.account = true } |
| 42 | |
| 43 | func SendAndReceive(index1 int, index2 int) bool { |
| 44 | sender := NewMySender() |
| 45 | |
| 46 | // Create and send a new order |
| 47 | order := proto.OrderMessage{Body: proto.Order{Id: 1, Symbol: "EURUSD", Side: proto.OrderSide_buy, Type: proto.OrderType_market, Price: 1.23456, Volume: 1000.0}} |
| 48 | _, _ = sender.Send(&order) |
| 49 | |
| 50 | // Create and send a new balance wallet |
| 51 | balance := proto.BalanceMessage{Body: proto.Balance{Currency: "USD", Amount: 1000.0}} |
| 52 | _, _ = sender.Send(&balance) |
| 53 | |
| 54 | // Create and send a new account with some orders |
| 55 | account := proto.AccountMessage{Body: *proto.NewAccountFromFieldValues(1, "Test", proto.State_good, proto.Balance{Currency: "USD", Amount: 1000.0}, &proto.Balance{Currency: "EUR", Amount: 100.0}, make([]proto.Order, 0))} |
| 56 | account.Body.Orders = append(account.Body.Orders, proto.Order{Id: 1, Symbol: "EURUSD", Side: proto.OrderSide_buy, Type: proto.OrderType_market, Price: 1.23456, Volume: 1000.0}) |
| 57 | account.Body.Orders = append(account.Body.Orders, proto.Order{Id: 2, Symbol: "EURUSD", Side: proto.OrderSide_sell, Type: proto.OrderType_limit, Price: 1.0, Volume: 100.0}) |
| 58 | account.Body.Orders = append(account.Body.Orders, proto.Order{Id: 3, Symbol: "EURUSD", Side: proto.OrderSide_buy, Type: proto.OrderType_stop, Price: 1.5, Volume: 10.0}) |
| 59 | _, _ = sender.Send(&account) |
| 60 | |
| 61 | receiver := NewMyReceiver() |
| 62 | |
| 63 | // Receive data from the sender |
| 64 | index1 %= sender.Buffer().Size() |
| 65 | index2 %= sender.Buffer().Size() |
| 66 | if index2 < index1 { |
| 67 | index2 = index1 |
| 68 | } |
| 69 | _ = receiver.Receive(sender.Buffer().Data()[:index1]) |
| 70 | _ = receiver.Receive(sender.Buffer().Data()[index1:index2]) |
| 71 | _ = receiver.Receive(sender.Buffer().Data()[index2:]) |
| 72 | return receiver.Check() |
| 73 | } |
| 74 | |
| 75 | func TestSendAndReceive(t *testing.T) { |
| 76 | for i := 0; i < 1000; i++ { |
no test coverage detected