public async Task GivenAnItemId_ThenCorrectRequestIsMadeToRetrieveItem() { const string itemId = "8665454"; var queueItem = new QueueItem { Id = itemId }; var message = new CloudQueueMessage(JsonConvert.SerializeObject(queueItem)); var fileLoaderMessageHandler = new FileLoaderMessageHandler("Item", "Argos"); GetArgosPriceFunction.Client = new HttpClient(fileLoaderMessageHandler); await GetArgosPriceFunction.Run(message, _tableReference); var requests = fileLoaderMessageHandler.GetRequests(); Assert.Contains($"https://www.argos.co.uk/product/{itemId}", requests); }
public async Task GivenAnItemId_ThenCorrectPriceIsEnteredIntoTheDatabase() { const string itemId = "8665454"; var queueItem = new QueueItem { Id = itemId }; var message = new CloudQueueMessage(JsonConvert.SerializeObject(queueItem)); GetArgosPriceFunction.Client = new HttpClient(new FileLoaderMessageHandler("Item", "Argos")); await GetArgosPriceFunction.Run(message, _tableReference); var query = new TableQuery <ItemPrice>().Where($"PartitionKey eq '{itemId}'"); var result = await _tableReference.ExecuteQuerySegmentedAsync(query, null); var itemPrice = result.Results.First(); Assert.NotNull(itemPrice); Assert.Equal("£199.99", itemPrice.Price); Assert.Equal(DateTime.UtcNow, itemPrice.PriceDate, TimeSpan.FromSeconds(2)); }