MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / TestCreate

Function TestCreate

projects/Go/tests/create_test.go:8–146  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

6import "../proto/proto"
7
8func 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

Callers

nothing calls this directly

Calls 15

ModelMethod · 0.95
CreateBeginMethod · 0.95
CreateEndMethod · 0.95
BufferMethod · 0.95
VerifyMethod · 0.95
NextMethod · 0.95
FBEOffsetMethod · 0.45
SetBeginMethod · 0.45
SetMethod · 0.45
SetValueMethod · 0.45
SetEndMethod · 0.45
ValueMethod · 0.45

Tested by

no test coverage detected