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

Function TestClone

projects/Go/tests/clone_test.go:7–47  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

5import "../proto/proto"
6
7func TestClone(t *testing.T) {
8 // Create a new account with some orders
9 var account = 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))
10 account.Orders = append(account.Orders, proto.Order{Id: 1, Symbol: "EURUSD", Side: proto.OrderSide_buy, Type: proto.OrderType_market, Price: 1.23456, Volume: 1000.0})
11 account.Orders = append(account.Orders, proto.Order{Id: 2, Symbol: "EURUSD", Side: proto.OrderSide_sell, Type: proto.OrderType_limit, Price: 1.0, Volume: 100.0})
12 account.Orders = append(account.Orders, proto.Order{Id: 3, Symbol: "EURUSD", Side: proto.OrderSide_buy, Type: proto.OrderType_stop, Price: 1.5, Volume: 10.0})
13
14 // Clone the account
15 account2 := account.Clone()
16
17 // Clear the source account
18 account = proto.NewAccount()
19
20 assert.EqualValues(t, account2.Id, 1)
21 assert.EqualValues(t, account2.Name, "Test")
22 assert.True(t, account2.State.HasFlags(proto.State_good))
23 assert.EqualValues(t, account2.Wallet.Currency, "USD")
24 assert.EqualValues(t, account2.Wallet.Amount, 1000.0)
25 assert.NotNil(t, account2.Asset)
26 assert.EqualValues(t, account2.Asset.Currency, "EUR")
27 assert.EqualValues(t, account2.Asset.Amount, 100.0)
28 assert.EqualValues(t, len(account2.Orders), 3)
29 assert.EqualValues(t, account2.Orders[0].Id, 1)
30 assert.EqualValues(t, account2.Orders[0].Symbol, "EURUSD")
31 assert.EqualValues(t, account2.Orders[0].Side, proto.OrderSide_buy)
32 assert.EqualValues(t, account2.Orders[0].Type, proto.OrderType_market)
33 assert.EqualValues(t, account2.Orders[0].Price, 1.23456)
34 assert.EqualValues(t, account2.Orders[0].Volume, 1000.0)
35 assert.EqualValues(t, account2.Orders[1].Id, 2)
36 assert.EqualValues(t, account2.Orders[1].Symbol, "EURUSD")
37 assert.EqualValues(t, account2.Orders[1].Side, proto.OrderSide_sell)
38 assert.EqualValues(t, account2.Orders[1].Type, proto.OrderType_limit)
39 assert.EqualValues(t, account2.Orders[1].Price, 1.0)
40 assert.EqualValues(t, account2.Orders[1].Volume, 100.0)
41 assert.EqualValues(t, account2.Orders[2].Id, 3)
42 assert.EqualValues(t, account2.Orders[2].Symbol, "EURUSD")
43 assert.EqualValues(t, account2.Orders[2].Side, proto.OrderSide_buy)
44 assert.EqualValues(t, account2.Orders[2].Type, proto.OrderType_stop)
45 assert.EqualValues(t, account2.Orders[2].Price, 1.5)
46 assert.EqualValues(t, account2.Orders[2].Volume, 10.0)
47}

Callers

nothing calls this directly

Calls 2

CloneMethod · 0.45
HasFlagsMethod · 0.45

Tested by

no test coverage detected