public void given_market_center_is_open_process_response()
        {
            var url = WebUtility.UrlEncode("https://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ('AUDCAD,AUDCHF')") + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
            var pairs = new List<CurrencyPair>
            {
                new CurrencyPair {Symbol = "AUDCAD"},
                new CurrencyPair {Symbol = "AUDCHF"}
            };

            var response = new Quote
            {
                Created = DateTime.Now,
                Rates = new List<Rate>()
            };

            response.Rates.Add(new Rate { CurrencyPair = new CurrencyPair { Symbol = "AUDCAD" } });
            response.Rates.Add(new Rate { CurrencyPair = new CurrencyPair { Symbol = "AUDCHF" } });

            _currencyPairProvider.Setup(x => x.Market).Returns(new Market{IsOpen = true});
            _currencyPairProvider.Setup(x => x.Pairs).Returns(pairs);
            _httpProvider.Setup(x => x.GetAsync(url, _formatter.Object)).Returns(Task.FromResult(response));

            _yahooFinance = new YahooFinanceProvider(_httpProvider.Object,
                                                                    _currencyPairProvider.Object,
                                                                    _formatter.Object);
            var result =_yahooFinance.GetQuote();

            _httpProvider.Verify();
        }
        public void given_valid_request_process_test_successfully()
        {
            var quote = new Quote();

            _dataRepository.SetupGet(x => x.Quotes).Returns(_collection.Object);

            _provider.Setup(x => x.GetQuote()).Returns(Task.FromResult(quote));

            _sut = new GetQuotes(_provider.Object, _log.Object, _dataRepository.Object);

            _sut.Execute(_context.Object);

            _collection.Verify(x => x.InsertOne(quote, null, CancellationToken.None));
        }