(t *testing.T)
| 6 | import "../proto/proto" |
| 7 | |
| 8 | func TestCreate(t *testing.T) { |
| 9 | // Create a new account using FBE model into the FBE stream |
| 10 | writer := proto.NewAccountModel(fbe.NewEmptyBuffer()) |
| 11 | assert.EqualValues(t, writer.Model().FBEOffset(), 4) |
| 12 | modelBegin := writer.CreateBegin() |
| 13 | accountBegin, _ := writer.Model().SetBegin() |
| 14 | _ = writer.Model().Id.Set(1) |
| 15 | _ = writer.Model().Name.Set("Test") |
| 16 | _ = writer.Model().State.SetValue(proto.State_good) |
| 17 | walletBegin, _ := writer.Model().Wallet.SetBegin() |
| 18 | _ = writer.Model().Wallet.Currency.Set("USD") |
| 19 | _ = writer.Model().Wallet.Amount.Set(1000.0) |
| 20 | writer.Model().Wallet.SetEnd(walletBegin) |
| 21 | assetBegin, _ := writer.Model().Asset.SetBegin(true) |
| 22 | assetWalletBegin, _ := writer.Model().Asset.Value().SetBegin() |
| 23 | _ = writer.Model().Asset.Value().Currency.Set("EUR") |
| 24 | _ = writer.Model().Asset.Value().Amount.Set(100.0) |
| 25 | writer.Model().Asset.SetEnd(assetBegin) |
| 26 | writer.Model().Asset.Value().SetEnd(assetWalletBegin) |
| 27 | order, _ := writer.Model().Orders.Resize(3) |
| 28 | orderBegin, _ := order.SetBegin() |
| 29 | _ = order.Id.Set(1) |
| 30 | _ = order.Symbol.Set("EURUSD") |
| 31 | _ = order.Side.SetValue(proto.OrderSide_buy) |
| 32 | _ = order.Type.SetValue(proto.OrderType_market) |
| 33 | _ = order.Price.Set(1.23456) |
| 34 | _ = order.Volume.Set(1000.0) |
| 35 | order.SetEnd(orderBegin) |
| 36 | order.FBEShift(order.FBESize()) |
| 37 | orderBegin, _ = order.SetBegin() |
| 38 | _ = order.Id.Set(2) |
| 39 | _ = order.Symbol.Set("EURUSD") |
| 40 | _ = order.Side.SetValue(proto.OrderSide_sell) |
| 41 | _ = order.Type.SetValue(proto.OrderType_limit) |
| 42 | _ = order.Price.Set(1.0) |
| 43 | _ = order.Volume.Set(100.0) |
| 44 | order.SetEnd(orderBegin) |
| 45 | order.FBEShift(order.FBESize()) |
| 46 | orderBegin, _ = order.SetBegin() |
| 47 | _ = order.Id.Set(3) |
| 48 | _ = order.Symbol.Set("EURUSD") |
| 49 | _ = order.Side.SetValue(proto.OrderSide_buy) |
| 50 | _ = order.Type.SetValue(proto.OrderType_stop) |
| 51 | _ = order.Price.Set(1.5) |
| 52 | _ = order.Volume.Set(10.0) |
| 53 | order.SetEnd(orderBegin) |
| 54 | order.FBEShift(order.FBESize()) |
| 55 | writer.Model().SetEnd(accountBegin) |
| 56 | serialized := writer.CreateEnd(modelBegin) |
| 57 | assert.EqualValues(t, serialized, writer.Buffer().Size()) |
| 58 | assert.True(t, writer.Verify()) |
| 59 | writer.Next(serialized) |
| 60 | assert.EqualValues(t, writer.Model().FBEOffset(), 4+writer.Buffer().Size()) |
| 61 | |
| 62 | // Check the serialized FBE size |
| 63 | assert.EqualValues(t, writer.Buffer().Size(), 252) |
| 64 | |
| 65 | // Access the account model in the FBE stream |
nothing calls this directly
no test coverage detected