public void ReportTests() { string directory = Environment.CurrentDirectory; string fileName = "sales_report.txt"; string fullPath = Path.Combine(directory, fileName); File.Delete(fullPath); //deletes the pevious file in order to start a new report file to test. VendingMachine vmTest1 = new VendingMachine(); vmTest1.BuyItem("A1"); string value = ""; using (StreamReader sr = new StreamReader(fullPath)) { value = sr.ReadLine(); } Assert.AreEqual("Potato Crisps|1", value, "After buying A1, report should say 'Potato Crisps|1'"); vmTest1.BuyItem("A1"); using (StreamReader sr = new StreamReader(fullPath)) { value = sr.ReadLine(); } Assert.AreEqual("Potato Crisps|2", value, "After buying A1 twice, new report should say 'Potato Crisps|2'"); vmTest1.BuyItem("A1"); using (StreamReader sr = new StreamReader(fullPath)) { value = sr.ReadLine(); } Assert.AreEqual("Potato Crisps|3", value, "After buying A1 three times, new report should say 'Potato Crisps|3'"); vmTest1.BuyItem("A1"); }
public void VendingTest() { VendingMachine vmTest = new VendingMachine(); vmTest.BuyItem("A1"); var item1 = vmTest.GetInventoryItem("A1"); Assert.AreEqual("4", item1.Quantity.ToString()); Assert.AreEqual(1, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 1 object"); vmTest.BuyItem("A1"); Assert.AreEqual("3", item1.Quantity.ToString()); Assert.AreEqual(2, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 2 objects"); vmTest.BuyItem("A1"); Assert.AreEqual("2", item1.Quantity.ToString()); Assert.AreEqual(3, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 3 objects"); vmTest.BuyItem("A1"); Assert.AreEqual("1", item1.Quantity.ToString()); Assert.AreEqual(4, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 4 objects"); vmTest.BuyItem("A1"); Assert.AreEqual("0", item1.Quantity.ToString()); Assert.AreEqual(5, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 5 objects"); vmTest.BuyItem("A1"); Assert.AreEqual("SOLD OUT", item1.Quantity.ToString()); Assert.AreEqual(5, vmTest.purchasedInventory.Count, "purchasedInventory list should contain 5 objects"); vmTest.Money.FeedMoney(10); vmTest.MakeChange(); Assert.AreEqual(0, vmTest.purchasedInventory.Count); }
/// <summary> /// Menu for selecting a product from a display /// </summary> public void ProductSelection() { bool exit = false; while (!exit) { Console.Clear(); VendingMachineContents(); Console.WriteLine($"Current Balance: {_vm.Money.Balance.ToString("C")}"); Console.WriteLine("What would you like to purchase today?"); Console.WriteLine("Enter Q to return to previous menu"); Console.WriteLine("Input Item Symbol: \n"); string buyItem = Console.ReadLine(); var inv = _vm.GetInventoryItem(buyItem); if (buyItem.ToUpper() == "Q") { exit = true; } else if (_vm.inventory.Contains(inv)) { if (inv.Quantity > 0) { if (_vm.Money.Balance > inv.Price) { _vm.BuyItem(buyItem); Console.WriteLine($"{inv.Name} has been dispensed to you."); Console.WriteLine("Press Enter to add another item, or hit Q to return to the previous menu"); Console.ReadKey(); } else { Console.WriteLine("You do not have enough money."); Console.ReadKey(); } } else { Console.WriteLine("SOLD OUT"); Console.ReadKey(); } } else { Console.WriteLine("Invalid Selection."); Console.ReadKey(); } } }