public static void Load_ValidJson_Succeeds()
        {
            // Arrange + Act
            var promotions = PromotionLoader.Load(ValidPromotionsJson, StockItems).ToArray();

            //Assert
            Assert.That(promotions.Length, Is.EqualTo(1));

            var promotion = promotions.First();

            // Two items for the price of one
            Assert.That(promotion.Quantity, Is.EqualTo(2));
            Assert.That(promotion.Price, Is.EqualTo(1.0m));
        }
        public static void Load_EmptyJson_Succeeds()
        {
            // Arrange
            var json = string.Empty;
            IEnumerable <IPromotion> promotions = null;

            // Act + Assert
            Assert.DoesNotThrow(() =>
            {
                promotions = PromotionLoader.Load(json, StockItems);
            });

            Assert.That(promotions, Is.Not.Null);
            Assert.That(promotions, Is.Empty);
        }
Esempio n. 3
0
        public static void Main()
        {
            // Load all data required to run the program
            var priceList = GroceryItemLoader.Load(File.ReadAllText(".\\GroceryItems.json"))
                            .ToDictionary(i => i.Id, i => i);

            var promotions = PromotionLoader.Load(File.ReadAllText(".\\Promotions.json"), priceList);

            var basket = BasketItemLoader.Load(File.ReadAllText(".\\Basket.json"));

            // Instantiate the controller
            var controller = new CheckoutController(priceList, promotions);

            // Checkout the items
            var view = controller.Checkout(basket);

            // Render the view
            view.Render();

            System.Console.WriteLine("Press a key to continue");
            System.Console.ReadKey();
        }
 public static void Load_InvalidJson_Fails()
 {
     // Arrange + Act + Assert
     Assert.Throws <JsonSerializationException>(() => PromotionLoader.Load(InvalidPromotionsJson, StockItems));
 }