Exemple #1
0
        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);
        }
Exemple #2
0
        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));
        }