MCPcopy
hub / github.com/thrasher-corp/gocryptotrader / TestGetKlineRequest

Function TestGetKlineRequest

exchanges/exchange_test.go:2076–2163  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2074}
2075
2076func TestGetKlineRequest(t *testing.T) {
2077 t.Parallel()
2078 b := Base{Name: "klineTest"}
2079 _, err := b.GetKlineRequest(currency.EMPTYPAIR, asset.Empty, 0, time.Time{}, time.Time{}, false)
2080 assert.ErrorIs(t, err, currency.ErrCurrencyPairEmpty)
2081
2082 p := currency.NewBTCUSDT()
2083 _, err = b.GetKlineRequest(p, asset.Empty, 0, time.Time{}, time.Time{}, false)
2084 assert.ErrorIs(t, err, asset.ErrNotSupported)
2085
2086 _, err = b.GetKlineRequest(p, asset.Spot, 0, time.Time{}, time.Time{}, false)
2087 assert.ErrorIs(t, err, kline.ErrInvalidInterval)
2088
2089 b.Features.Enabled.Kline.Intervals = kline.DeployExchangeIntervals(kline.IntervalCapacity{Interval: kline.OneDay, Capacity: 1439})
2090 err = b.CurrencyPairs.Store(asset.Spot, &currency.PairStore{
2091 AssetEnabled: true,
2092 Enabled: []currency.Pair{p},
2093 Available: []currency.Pair{p},
2094 })
2095 require.NoError(t, err, "CurrencyPairs.Store must not error")
2096
2097 _, err = b.GetKlineRequest(p, asset.Spot, 0, time.Time{}, time.Time{}, false)
2098 assert.ErrorIs(t, err, kline.ErrInvalidInterval)
2099
2100 _, err = b.GetKlineRequest(p, asset.Spot, kline.OneMin, time.Time{}, time.Time{}, false)
2101 assert.ErrorIs(t, err, kline.ErrCannotConstructInterval)
2102
2103 b.Features.Enabled.Kline.Intervals = kline.DeployExchangeIntervals(kline.IntervalCapacity{Interval: kline.OneMin})
2104 b.Features.Enabled.Kline.GlobalResultLimit = 1439
2105 _, err = b.GetKlineRequest(p, asset.Spot, kline.OneHour, time.Time{}, time.Time{}, false)
2106 assert.ErrorIs(t, err, currency.ErrPairFormatIsNil)
2107
2108 err = b.CurrencyPairs.Store(asset.Spot, &currency.PairStore{
2109 AssetEnabled: true,
2110 Enabled: []currency.Pair{p},
2111 Available: []currency.Pair{p},
2112 RequestFormat: &currency.PairFormat{Uppercase: true},
2113 })
2114 require.NoError(t, err, "CurrencyPairs.Store must not error")
2115
2116 start := time.Date(2020, 12, 1, 0, 0, 0, 0, time.UTC)
2117 end := start.AddDate(0, 0, 1)
2118 _, err = b.GetKlineRequest(p, asset.Spot, kline.OneMin, start, end, true)
2119 assert.ErrorIs(t, err, kline.ErrRequestExceedsExchangeLimits)
2120
2121 _, err = b.GetKlineRequest(p, asset.Spot, kline.OneMin, start, end, false)
2122 assert.ErrorIs(t, err, kline.ErrRequestExceedsExchangeLimits)
2123
2124 _, err = b.GetKlineRequest(p, asset.Futures, kline.OneHour, start, end, false)
2125 assert.ErrorIs(t, err, currency.ErrAssetNotFound)
2126
2127 err = b.CurrencyPairs.Store(asset.Futures, &currency.PairStore{
2128 AssetEnabled: true,
2129 Enabled: []currency.Pair{p},
2130 Available: []currency.Pair{p},
2131 RequestFormat: &currency.PairFormat{Uppercase: true},
2132 })
2133 require.NoError(t, err, "CurrencyPairs.Store must not error")

Callers

nothing calls this directly

Calls 7

GetKlineRequestMethod · 0.95
NewBTCUSDTFunction · 0.92
DeployExchangeIntervalsFunction · 0.92
StoreMethod · 0.80
DurationMethod · 0.80
AddMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected