public void Add_AddValidItem_ItemNameAndPriceDisplayed() { IProductRepository products = A.Fake<IProductRepository>(); ShoppingCart shoppingCart = new ShoppingCart(products); IDisplay consoleDisplay = A.Fake<IDisplay>(); Register register = new Register(shoppingCart, consoleDisplay); A.CallTo(() => products.GetProductById("item-1")).Throws(new UnknownProductException("")); register.Add("item-1"); A.CallTo(() => consoleDisplay.ShowMessage("Invalid item code!")).MustHaveHappened(); }
static void Main() { var products = new ProductDal(); products.AddProduct(new Product("item-1", "IPhone 6", 999)); products.AddProduct(new Product("item-2", "Surface 2 pro", 2000)); products.AddProduct(new Product("item-3", "Stamps", 2)); products.AddProduct(new Product("item-4", "Arduino Ono", 25)); var shoppingCart = new ShoppingCart(products); var register = new Register(shoppingCart, new ConsoleDisplay()); Console.WriteLine("add - Add product to cart"); Console.WriteLine("total - show total"); Console.WriteLine("exit - exit from simulatio"); var keepRunning = true; while (keepRunning) { Console.Write("Command>>"); var readLine = Console.ReadLine(); switch (readLine) { case "add": Console.WriteLine("product id?"); Console.Write("Add>>"); var productId = Console.ReadLine(); register.Add(productId); break; case "total": register.Total(); break; case "exit": keepRunning = false; break; default: Console.WriteLine(">>> Wrong input :("); break; } } }
public void Total_AddTwoValidItems_ItemsNamesAndPricesDisplayed() { IProductRepository products = A.Fake<IProductRepository>(); ShoppingCart shoppingCart = new ShoppingCart(products); IDisplay consoleDisplay = A.Fake<IDisplay>(); Register register = new Register(shoppingCart, consoleDisplay); A.CallTo(() => products.GetProductById("item-1")).Returns(new Product("item-1", "Banana", 10.5)); register.Add("item-1"); register.Add("item-1"); register.Total(); A.CallTo(() => consoleDisplay.ShowMessage("Total: 21")).MustHaveHappened(); }