-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathexchange_info_service_test.go
109 lines (101 loc) · 3.14 KB
/
exchange_info_service_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package phemex
import (
"testing"
"github.com/stretchr/testify/suite"
)
type exchangeInfoServiceTestSuite struct {
baseTestSuite
}
func TestExchangeInfoService(t *testing.T) {
suite.Run(t, new(exchangeInfoServiceTestSuite))
}
func (s *exchangeInfoServiceTestSuite) TestExchangeInfoService() {
data := []byte(`{
"code": 0,
"msg": "OK",
"data": [
{
"symbol": "BTC",
"underlyingSymbol": "BTC",
"quoteCurrency": "BTC",
"settlementCurrency": "BTC",
"maxOrderQty": 0,
"maxPriceEp": 0,
"lotSize": 0,
"tickSize": "1",
"contractSize": "1",
"priceScale": 0,
"ratioScale": 0,
"valueScale": 0,
"defaultLeverage": 0,
"maxLeverage": 0,
"initMarginEr": "1",
"maintMarginEr": "1",
"defaultRiskLimitEv": 0,
"deleverage": false,
"makerFeeRateEr": 0,
"takerFeeRateEr": 0,
"fundingInterval": 0,
"description": ""
}
]
}`)
s.mockDo(data, nil)
defer s.assertDo()
s.assertReq(func(r *request) {
e := newSignedRequest()
s.assertRequestEqual(e, r)
})
res, err := s.client.NewExchangeProductsService().Do(newContext())
s.r().NoError(err)
e := []*ExchangeProduct{{
Symbol: "BTC",
UnderlyingSymbol: "BTC",
QuoteCurrency: "BTC",
SettlementCurrency: "BTC",
MaxOrderQty: 0,
LotSize: 0,
TickSize: "1",
ContractSize: "1",
PriceScale: 0,
RatioScale: 0,
ValueScale: 0,
DefaultLeverage: 0,
MaxLeverage: 0,
InitMarginEr: "1",
MaintMarginEr: "1",
DefaultRiskLimitEv: 0,
Deleverage: false,
MakerFeeRateEr: 0,
TakerFeeRateEr: 0,
FundingInterval: 0,
Description: "",
}}
s.assertAccountEqual(e, res)
}
func (s *exchangeInfoServiceTestSuite) assertAccountEqual(e, a []*ExchangeProduct) {
r := s.r()
for i := 0; i < len(a); i++ {
r.Equal(e[i].Symbol, a[i].Symbol, "Symbol")
r.Equal(e[i].UnderlyingSymbol, a[i].UnderlyingSymbol, "UnderlyingSymbol")
r.Equal(e[i].QuoteCurrency, a[i].QuoteCurrency, "QuoteCurrency")
r.Equal(e[i].SettlementCurrency, a[i].SettlementCurrency, "SettlementCurrency")
r.Equal(e[i].MaxOrderQty, a[i].MaxOrderQty, "MaxOrderQty")
r.Equal(e[i].LotSize, a[i].LotSize, "LotSize")
r.Equal(e[i].TickSize, a[i].TickSize, "TickSize")
r.Equal(e[i].ContractSize, a[i].ContractSize, "ContractSize")
r.Equal(e[i].PriceScale, a[i].PriceScale, "PriceScale")
r.Equal(e[i].RatioScale, a[i].RatioScale, "RatioScale")
r.Equal(e[i].ValueScale, a[i].ValueScale, "ValueScale")
r.Equal(e[i].DefaultLeverage, a[i].DefaultLeverage, "DefaultLeverage")
r.Equal(e[i].MaxLeverage, a[i].MaxLeverage, "MaxLeverage")
r.Equal(e[i].InitMarginEr, a[i].InitMarginEr, "InitMarginEr")
r.Equal(e[i].MaintMarginEr, a[i].MaintMarginEr, "MaintMarginEr")
r.Equal(e[i].DefaultRiskLimitEv, a[i].DefaultRiskLimitEv, "DefaultRiskLimitEv")
r.Equal(e[i].Deleverage, a[i].Deleverage, "Deleverage")
r.Equal(e[i].MakerFeeRateEr, a[i].MakerFeeRateEr, "MakerFeeRateEr")
r.Equal(e[i].TakerFeeRateEr, a[i].TakerFeeRateEr, "TakerFeeRateEr")
r.Equal(e[i].FundingInterval, a[i].FundingInterval, "FundingInterval")
r.Equal(e[i].Description, a[i].Description, "Description")
}
}