public void Setup()
 {
     _dataPumpProvider = Substitute.For <IDataPumpProvider>();
     _dataPumpProvider.GetTableName(StockType.Stock, StockDataRange.Daily, 0).Returns("test_dzienne");
     _commandGenerator = new InsertCommandGenerator(_dataPumpProvider);
     TestObj           = new DataPumpStockDataToDBWriter(_dataPumpProvider, _commandGenerator);
 }
        public static IDataPump Get(DataPumpType dataPumpType, IDataPumpProvider dataPumpProvider, string downloadPath)
        {
            Dictionary <StockType, DataPumpDownloadDefinition> downloadDefinitions = dataPumpProvider.GetDownloadDefinitions();

            DownloadDirectories         downloadDirectories         = new DownloadDirectories(downloadPath);
            DownloadUrlPrepator         downloadUrlPrepator         = new DownloadUrlPrepator(downloadDefinitions);
            DownloadFilePathPreparator  downloadFilePathPreparator  = new DownloadFilePathPreparator(downloadDefinitions, downloadDirectories);
            DownloadUnzipPathPreparator downloadUnzipPathPreparator = new DownloadUnzipPathPreparator(downloadDirectories);
            DownloadFilesQueue          downloadFilesQueue          = new DownloadFilesQueue();
            DownloadPipe                 downloadPipe        = new DownloadPipe(new WebClientFileDownloader(), new SystemFileUnzipper(), downloadFilesQueue);
            IDataFileDownloader          dataFileDownloader  = new DataFileDownloader(downloadPipe, downloadFilesQueue, downloadUrlPrepator, downloadFilePathPreparator, downloadUnzipPathPreparator);
            IDataPumpStockDataToDBWriter stockDataToDBWriter = new DataPumpStockDataToDBWriter(dataPumpProvider, new InsertCommandGenerator(dataPumpProvider));
            IDataFileIterator            dataFileIterator    = new DailyDataFileIterator();
            IDataFileLineToStockData     lineToStockData     = new DailyDataFileLineToStockData();

            return(new Bossa.DataPump(dataPumpProvider, dataFileIterator, stockDataToDBWriter, lineToStockData, dataFileDownloader, downloadDirectories));
        }