/* * 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 QuantConnect.Util; using QuantConnect.Interfaces; using QuantConnect.Configuration; using QuantConnect.Lean.Engine.DataFeeds; using QuantConnect.Data.UniverseSelection; using QuantConnect.Tests.Common.Data.Fundamental; using QuantConnect.Data; namespace QuantConnect.Tests { /// /// Global static class for some core providers used by various tests /// public static class TestGlobals { private static bool _initialized; public static IDataProvider DataProvider = Composer.Instance.GetExportedValueByTypeName(Config.Get("data-provider", "DefaultDataProvider")); public static IMapFileProvider MapFileProvider = Composer.Instance.GetExportedValueByTypeName(Config.Get("map-file-provider", "LocalDiskMapFileProvider")); public static IFactorFileProvider FactorFileProvider = Composer.Instance.GetExportedValueByTypeName(Config.Get("factor-file-provider", "LocalDiskFactorFileProvider")); public static IDataCacheProvider DataCacheProvider = new ZipDataCacheProvider(DataProvider); public static IHistoryProvider HistoryProvider = Composer.Instance.GetExportedValueByTypeName("SubscriptionDataReaderHistoryProvider"); /// /// Initialize our providers, called by AssemblyInitialize.cs so all tests /// can access initialized providers /// public static void Initialize() { lock (DataProvider) { if (_initialized) { return; } _initialized = true; var initializeParameters = new HistoryProviderInitializeParameters(null, null, DataProvider, DataCacheProvider, MapFileProvider, FactorFileProvider, (_) => { }, true, new DataPermissionManager(), null, new AlgorithmSettings()); try { HistoryProvider.Initialize(initializeParameters); } catch { // Already initialized } MapFileProvider.Initialize(DataProvider); FactorFileProvider.Initialize(MapFileProvider, DataProvider); FundamentalService.Initialize(DataProvider, new NullFundamentalDataProvider(), false); } } } }