public async Task ReturnEmptyDictionaryIfNoMetadata() { using var client = new Client.AlphaVantageClient(_apiKey); var response = await client.RequestParsedJsonAsync( ApiFunction.SYMBOL_SEARCH, new Dictionary <string, string>() { { "keywords", "BA" } }, true); var metadata = response.ExtractMetaData(); metadata.Should().NotBeNull().And.BeEmpty(); }
public async Task ExtractMetaDataFromApiResponse() { var symbol = "AAPL"; var interval = "15min"; using var client = new Client.AlphaVantageClient(_apiKey); var response = await client.RequestParsedJsonAsync( ApiFunction.TIME_SERIES_INTRADAY, new Dictionary <string, string>() { { "symbol", symbol }, { "interval", interval } }, true); var metadata = response.ExtractMetaData(); metadata.Should().NotBeNull() .And.HaveCount(6) .And.ContainKeys(new[] { "Information", "Symbol", "Last Refreshed", "Interval", "Output Size", "Time Zone" }) .And.ContainValues(symbol, interval, "Compact"); }
public async Task ReturnJsonDocument_OnCorrectRequest_WithClean() { const ApiFunction function = ApiFunction.TIME_SERIES_INTRADAY; var query = GetQuery("AAPL", "15min"); using var client = new Client.AlphaVantageClient(_apiKey); var response = await client.RequestParsedJsonAsync(function, query, true); response .Should().NotBeNull() .And .Match <JsonDocument>( resp => resp.RootElement.EnumerateObject() .LastOrDefault().NameEquals("Time Series (15min)") ) .And .Match <JsonDocument>( resp => resp .RootElement.EnumerateObject().LastOrDefault() .Value.EnumerateObject().FirstOrDefault() .Value.EnumerateObject().FirstOrDefault() .NameEquals("open") ); }