public async void GetHistoricalPriceDataHttpError() { var mockRepository = new MockRepository(MockBehavior.Strict); var messageHandler = mockRepository.CreateHttpStatusMessageHandler(HttpStatusCode.NotFound); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetHistoricalPriceData("IBM", new DateRange(new Date(2020, 05, 14), new Date(2020, 05, 15)), CancellationToken.None); result.Should().BeEmpty(); }
public async void GetSinglePriceHttpError() { var mockRepository = new MockRepository(MockBehavior.Strict); var messageHandler = mockRepository.CreateHttpStatusMessageHandler(HttpStatusCode.NotFound); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetSinglePrice("IBM", CancellationToken.None); result.Should().BeNull(); }
public async void GetSinglePriceInvalidJson() { var mockRepository = new MockRepository(MockBehavior.Strict); var json = "xxxxx"; var messageHandler = mockRepository.CreateJsonMessageHandler(json); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetSinglePrice("IBM", CancellationToken.None); result.Should().BeNull(); }
public async void GetHistoricalPriceDataInvalidJson() { var mockRepository = new MockRepository(MockBehavior.Strict); var json = "xxxxx"; var messageHandler = mockRepository.CreateJsonMessageHandler(json); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetHistoricalPriceData("IBM", new DateRange(new Date(2020, 05, 14), new Date(2020, 05, 15)), CancellationToken.None); result.Should().BeEmpty(); }
public async void GetMultiplePrices() { var mockRepository = new MockRepository(MockBehavior.Strict); var json = "{ \"Meta Data\": " + " { \"1. Information\": \"Daily Prices (open, high, low, close) and Volumes\"," + " \"2. Symbol\": \"IBM\"," + " \"3. Last Refreshed\": \"2020-05-15\"," + " \"4. Output Size\": \"Compact\"," + " \"5. Time Zone\": \"US/Eastern\"" + " }," + " \"Time Series (Daily)\": " + " { \"2020-05-15\": " + " { \"1. open\": \"115.9300\"," + " \"2. high\": \"117.3900\"," + " \"3. low\": \"115.2500\"," + " \"4. close\": \"116.9800\"," + " \"5. volume\": \"4785773\"" + " }," + " \"2020-05-14\": " + " { \"1. open\": \"114.5700\"," + " \"2. high\": \"117.0900\"," + " \"3. low\": \"111.8100\"," + " \"4. close\": \"116.9500\"," + " \"5. volume\": \"5255607\"" + " }" + " }" + "}"; var requestMessage = new List <HttpRequestMessage>();; var messageHandler = mockRepository.CreateJsonMessageHandler(json, x => requestMessage.Add(x)); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetMultiplePrices(new string[] { "IBM", "ABC" }, CancellationToken.None); requestMessage[0].Method.Should().Be(HttpMethod.Get); requestMessage[0].RequestUri.AbsoluteUri.Should().StartWith("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM.AX&apikey="); requestMessage[1].Method.Should().Be(HttpMethod.Get); requestMessage[1].RequestUri.AbsoluteUri.Should().StartWith("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=ABC.AX&apikey="); }
public async void GetHistoricalPriceData() { var mockRepository = new MockRepository(MockBehavior.Strict); var json = "{ \"Meta Data\": " + " { \"1. Information\": \"Daily Prices (open, high, low, close) and Volumes\"," + " \"2. Symbol\": \"IBM\"," + " \"3. Last Refreshed\": \"2020-05-15\"," + " \"4. Output Size\": \"Compact\"," + " \"5. Time Zone\": \"US/Eastern\"" + " }," + " \"Time Series (Daily)\": " + " { \"2020-05-15\": " + " { \"1. open\": \"115.9300\"," + " \"2. high\": \"117.3900\"," + " \"3. low\": \"115.2500\"," + " \"4. close\": \"116.9800\"," + " \"5. volume\": \"4785773\"" + " }," + " \"2020-05-14\": " + " { \"1. open\": \"114.5700\"," + " \"2. high\": \"117.0900\"," + " \"3. low\": \"111.8100\"," + " \"4. close\": \"116.9500\"," + " \"5. volume\": \"5255607\"" + " }" + " }" + "}"; HttpRequestMessage requestMessage = null; var messageHandler = mockRepository.CreateJsonMessageHandler(json, x => requestMessage = x); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetHistoricalPriceData("IBM", new DateRange(new Date(2020, 05, 14), new Date(2020, 05, 15)), CancellationToken.None); requestMessage.Method.Should().Be(HttpMethod.Get); requestMessage.RequestUri.AbsoluteUri.Should().StartWith("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM.AX&apikey="); result.Should().BeEquivalentTo(new StockPrice[] { new StockPrice("IBM", new Date(2020, 05, 14), 116.95m), new StockPrice("IBM", new Date(2020, 05, 15), 116.98m) }); }
public async void GetSinglePriceUnexpectedJson() { var mockRepository = new MockRepository(MockBehavior.Strict); var json = "{ \"Meta Data2\": " + " { \"1. Information\": \"Daily Prices (open, high, low, close) and Volumes\"," + " \"2. Symbol\": \"IBM\"," + " \"3. Last Refreshed\": \"2020-05-15\"," + " \"4. Output Size\": \"Compact\"," + " \"5. Time Zone\": \"US/Eastern\"" + " }" + "}"; var messageHandler = mockRepository.CreateJsonMessageHandler(json); var httpClient = new HttpClient(messageHandler.Object); var dataService = new AlphaVantageDataService(httpClient); var result = await dataService.GetSinglePrice("IBM", CancellationToken.None); result.Should().BeNull(); }
public AlphaVantageDataServiceTest() { worldTradingDataRepository = Substitute.For <IApiRepository>(); worldTradingDataRepository.GetTokens(Arg.Any <string>()).Returns(Tokens); AlphaVantageDataService = new AlphaVantageDataService(new Uri(Base_Uri), worldTradingDataRepository); }