Files
quantconnect--lean/Tests/DownloaderDataProvider/DataDownloadConfigTests.cs
T
Roman Yavnikov 86fcc40c3e
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Feature: Generic brokerage downloader wrapper (#8235)
* feat: new constructor of AlgorithmNodePacket

* refactor: extract JobQueue configuration

* remove: not used `using` in IDataDownloader

* feat: create BrokerageDataDownloader

* Revert "refactor: extract JobQueue configuration"

This reverts commit 5778936b712befd6e367bee3decc4a3565ca69af.

* Revert "feat: new constructor of AlgorithmNodePacket"

This reverts commit d7a565ff761243ae1391bd45fd10c93221f0329e.

* feat: new config `data-download-brokerage` in DataDownloadProvider

* refactor: initialize in BrokerageDataDownloader

* remove: not used `using` in Program's DataDownloadProvider

* remove: not used ref on QuantConnect.Queue proj

* refactor: use default market based on SecurityType

* refactor: MarketName in DataDownloadConfig struct
test:feat: validate MarketName

* feat: support Canonical Symbols in BrokerageDataDownloader

* remove: not used command arguments

* feat: init CacheProvider of IOptionChainProvider in Downloader

* feat: add brokerage message event in BrokerageDataDownloader
2024-07-31 19:02:13 -03:00

58 lines
2.4 KiB
C#

/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using NUnit.Framework;
using QuantConnect.Configuration;
using QuantConnect.DownloaderDataProvider.Launcher;
namespace QuantConnect.Tests.DownloaderDataProvider
{
[TestFixture]
public class DataDownloadConfigTests
{
[TestCase(null, "BTCUSDT", SecurityType.Crypto, "coinbase", false)]
[TestCase(null, "BTCUSDT", SecurityType.Crypto, "coinbase", true)]
[TestCase("", "ETHUSDT", SecurityType.Crypto, "coinbase", false)]
[TestCase("", "ETHUSDT", SecurityType.Crypto, "coinbase", true)]
[TestCase(null, "AAPL", SecurityType.Equity, "usa", false)]
[TestCase(null, "AAPL", SecurityType.Equity, "usa", true)]
[TestCase("", "AAPL", SecurityType.Equity, "usa", false)]
[TestCase("", "AAPL", SecurityType.Equity, "usa", true)]
[TestCase("USA", "AAPL", SecurityType.Equity, "usa")]
[TestCase("ICE", "AAPL", SecurityType.Equity, "ice")]
public void ValidateMarketArguments(string market, string ticker, SecurityType securityType, string expectedMarket, bool skipConfigMarket = false)
{
Config.Set("data-type", "Trade");
Config.Set("resolution", "Daily");
Config.Set("security-type", $"{securityType}");
Config.Set("tickers", $"{{\"{ticker}\": \"\"}}");
Config.Set("start-date", "20240101");
Config.Set("end-date", "20240202");
if (!skipConfigMarket)
{
Config.Set("market", market);
}
var dataDownloadConfig = new DataDownloadConfig();
Assert.That(dataDownloadConfig.MarketName, Is.EqualTo(expectedMarket));
Config.Reset();
}
}
}