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

Method CreateAndAccess

projects/CSharp/Tests/Create.cs:12–153  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10 public class TestCreate
11 {
12 [Fact(DisplayName = "Create & access")]
13 public void CreateAndAccess()
14 {
15 // Create a new account using FBE model into the FBE stream
16 var writer = new AccountModel();
17 Assert.True(writer.model.FBEOffset == 4);
18 long modelBegin = writer.CreateBegin();
19 long accountBegin = writer.model.SetBegin();
20 writer.model.id.Set(1);
21 writer.model.name.Set("Test");
22 writer.model.state.Set(State.good);
23 long walletBegin = writer.model.wallet.SetBegin();
24 writer.model.wallet.currency.Set("USD");
25 writer.model.wallet.amount.Set(1000.0);
26 writer.model.wallet.SetEnd(walletBegin);
27 long assetBegin = writer.model.asset.SetBegin(true);
28 long assetWalletBegin = writer.model.asset.Value.SetBegin();
29 writer.model.asset.Value.currency.Set("EUR");
30 writer.model.asset.Value.amount.Set(100.0);
31 writer.model.asset.SetEnd(assetBegin);
32 writer.model.asset.Value.SetEnd(assetWalletBegin);
33 var order = writer.model.orders.Resize(3);
34 long orderBegin = order.SetBegin();
35 order.id.Set(1);
36 order.symbol.Set("EURUSD");
37 order.side.Set(OrderSide.buy);
38 order.type.Set(OrderType.market);
39 order.price.Set(1.23456);
40 order.volume.Set(1000.0);
41 order.SetEnd(orderBegin);
42 order.FBEShift(order.FBESize);
43 orderBegin = order.SetBegin();
44 order.id.Set(2);
45 order.symbol.Set("EURUSD");
46 order.side.Set(OrderSide.sell);
47 order.type.Set(OrderType.limit);
48 order.price.Set(1.0);
49 order.volume.Set(100.0);
50 order.SetEnd(orderBegin);
51 order.FBEShift(order.FBESize);
52 orderBegin = order.SetBegin();
53 order.id.Set(3);
54 order.symbol.Set("EURUSD");
55 order.side.Set(OrderSide.buy);
56 order.type.Set(OrderType.stop);
57 order.price.Set(1.5);
58 order.volume.Set(10.0);
59 order.SetEnd(orderBegin);
60 order.FBEShift(order.FBESize);
61 writer.model.SetEnd(accountBegin);
62 long serialized = writer.CreateEnd(modelBegin);
63 Assert.True(serialized == writer.Buffer.Size);
64 Assert.True(writer.Verify());
65 writer.Next(serialized);
66 Assert.True(writer.model.FBEOffset == (4 + writer.Buffer.Size));
67
68 // Check the serialized FBE size
69 Assert.True(writer.Buffer.Size == 252);

Callers

nothing calls this directly

Calls 14

CreateBeginMethod · 0.45
SetBeginMethod · 0.45
SetMethod · 0.45
SetEndMethod · 0.45
ResizeMethod · 0.45
FBEShiftMethod · 0.45
CreateEndMethod · 0.45
VerifyMethod · 0.45
NextMethod · 0.45
AttachMethod · 0.45
GetBeginMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected