(t *testing.T)
| 2074 | } |
| 2075 | |
| 2076 | func 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, ¤cy.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, ¤cy.PairStore{ |
| 2109 | AssetEnabled: true, |
| 2110 | Enabled: []currency.Pair{p}, |
| 2111 | Available: []currency.Pair{p}, |
| 2112 | RequestFormat: ¤cy.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, ¤cy.PairStore{ |
| 2128 | AssetEnabled: true, |
| 2129 | Enabled: []currency.Pair{p}, |
| 2130 | Available: []currency.Pair{p}, |
| 2131 | RequestFormat: ¤cy.PairFormat{Uppercase: true}, |
| 2132 | }) |
| 2133 | require.NoError(t, err, "CurrencyPairs.Store must not error") |
nothing calls this directly
no test coverage detected