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); }
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)); }