Пример #1
0
        public void GetPrice_ReturnsRightValues()
        {
            var result = _sut.GetPrice("A");

            Assert.Equal("A", result.Name);
            Assert.Equal(1.25m, result.ItemPrice);
            Assert.Equal(3, result.Volumes[3]);
        }
Пример #2
0
        public void GetBreadPrice()
        {
            var priceProvider = new PriceProvider();
            var breadPrice    = priceProvider.GetPrice(Products.Bread);

            Assert.AreEqual(1.00m, breadPrice);
        }
Пример #3
0
        public void GetPriceForItemNotInPriceList()
        {
            var priceProvider = new PriceProvider();
            var price         = priceProvider.GetPrice("testProduct");

            Assert.AreEqual(0.0m, price);
        }
Пример #4
0
        public void GetButterPrice()
        {
            var priceProvider = new PriceProvider();
            var milkPrice     = priceProvider.GetPrice(Products.Butter);

            Assert.AreEqual(0.80m, milkPrice);
        }
Пример #5
0
        public void GetMilkPrice()
        {
            var priceProvider = new PriceProvider();
            var milkPrice     = priceProvider.GetPrice(Products.Milk);

            Assert.AreEqual(1.15m, milkPrice);
        }
Пример #6
0
        private async Task <DialogTurnResult> ShowPrice(WaterfallStepContext stepContext)
        {
            var context    = stepContext.Context;
            var priceState = await priceStateAccessor.GetAsync(context);

            var provider = new PriceProvider();
            var value    = await provider.GetPrice(priceState.StockCode);

            var code = priceState.StockCode != priceState.StockName ? $" ({priceState.StockCode})" : "";

            if (value.HasValue)
            {
                if (priceState.StockCode != priceState.StockName)
                {
#pragma warning disable 4014
                    /*await - fire and forget*/ provider.AddMap(priceState.StockName, priceState.StockCode);
#pragma warning restore 4014
                }

                await context.SendActivityAsync($"Price of {priceState.StockName}{code} is {value}");
            }
            else
            {
                await context.SendActivityAsync($"Sorry, I can't find the price of {priceState.StockName} ({priceState.StockCode}).");
            }

            //cleanup so that next dialog starts fresh
            priceState.StockName = null;
            priceState.StockCode = null;
            await priceStateAccessor.SetAsync(context, priceState);

            return(await stepContext.EndDialogAsync());
        }