コード例 #1
0
        public void DataSourceRealTimeWithInternetPriceTest(Country country, string stockId)
        {
            IConfiguration config = TestServiceProvider.GetTestConfiguration();
            IStockQuoteDataSourceOperations operations = new StockQuoteDataSourceOperations();
            IStockQuoteParser      parser = new AlphaVantageParser();
            AlphaVantageDataSource source = new AlphaVantageDataSource(config, operations, parser);

            IStockQuoteFromDataSource quote = source.GetMostRecentQuoteAsync(country, stockId, WriteToErrorLogAction).Result;

            Assert.NotNull(quote);
            Assert.True(quote.IsValid);
        }
コード例 #2
0
        public void ParseMultiQuotesEmptyInputTest()
        {
            Country country = Country.USA;
            string  stockId = "HDV";

            _isWriteToErrorLogActionRan = false;

            AlphaVantageParser parser = new AlphaVantageParser();
            IReadOnlyList <IStockQuoteFromDataSource> quotes = parser.ParseMultiQuotes(country, stockId, null, WriteToErrorLogAction);

            Assert.Null(quotes);
            Assert.True(_isWriteToErrorLogActionRan);
        }
コード例 #3
0
        public void ParseSingleQuoteTest()
        {
            Country country = Country.USA;
            string  stockId = "HDV";

            AlphaVantageParser parser = new AlphaVantageParser();

            string jsonContent = TestUtilities.ReadTestFile(Av5MinsJsonFile);
            IStockQuoteFromDataSource quote = parser.ParseSingleQuote(country, stockId, jsonContent, WriteToErrorLogAction);

            Assert.NotNull(quote);
            Assert.True(quote.IsValid);
        }
コード例 #4
0
        public void ParseSingleQuoteEmptyInputTest()
        {
            Country country = Country.USA;
            string  stockId = "HDV";

            AlphaVantageParser parser = new AlphaVantageParser();

            _isWriteToErrorLogActionRan = false;

            IStockQuoteFromDataSource quote = parser.ParseSingleQuote(country, stockId, null, WriteToErrorLogAction);

            Assert.Null(quote);
            Assert.True(_isWriteToErrorLogActionRan);
        }
コード例 #5
0
        public void ParseMultiQuotesTest(string jsonFile)
        {
            Country           country     = Country.USA;
            string            stockId     = "HDV";
            IStockQuoteParser parser      = new AlphaVantageParser();
            string            jsonContent = TestUtilities.ReadTestFile(jsonFile);

            IReadOnlyList <IStockQuoteFromDataSource> quotes = parser.ParseMultiQuotes(country, stockId, jsonContent, WriteToErrorLogAction);

            Assert.NotNull(quotes);
            foreach (IStockQuoteFromDataSource quote in quotes)
            {
                Assert.True(quote.IsValid);
            }
        }
コード例 #6
0
        public void DataSourceDailyFullOutputWithInternetTest(Country country, string stockId)
        {
            IConfiguration config = TestServiceProvider.GetTestConfiguration();

            DateTime start = DateTime.Now.AddDays(-600);
            DateTime end   = DateTime.Now.AddDays(-300);

            IStockQuoteDataSourceOperations operations = new StockQuoteDataSourceOperations();
            IStockQuoteParser      parser = new AlphaVantageParser();
            AlphaVantageDataSource source = new AlphaVantageDataSource(config, operations, parser);
            IReadOnlyList <IStockQuoteFromDataSource> quotes = source.GetHistoricalQuotesAsync(country, stockId, start, end, WriteToErrorLogAction).Result;

            Assert.NotNull(quotes);
            Assert.True(quotes.Count >= 206);

            foreach (IStockQuoteFromDataSource quote in quotes)
            {
                Assert.True(quote.IsValid);
            }
        }
コード例 #7
0
        private IStockQuoteDataSource CreateStockSource(Contracts.StockQuoteSource sourceKind)
        {
            switch (sourceKind)
            {
            case Contracts.StockQuoteSource.Yahoo:
                IStockQuoteParser yahooParser = new YahooFinanceParser();
                return(new YahooFinanceDataSource(_configuration, _dataSourceOperations, yahooParser));

            case Contracts.StockQuoteSource.AlphaVantage:
                IStockQuoteParser alphaVantageParser = new AlphaVantageParser();
                return(new AlphaVantageDataSource(_configuration, _dataSourceOperations, alphaVantageParser));

            case Contracts.StockQuoteSource.Test:
                // There is no test data source required
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(sourceKind), sourceKind, null);
            }

            return(null);
        }