public void Purchase_ThrowsInsufficientFunds() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() { testItem } } }; VendingMachine vm = new VendingMachine(inventory); //Act vm.Purchase("A1"); }
public void GetItemAtSlot_InvalidSlot() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() { testItem } } }; VendingMachine vm = new VendingMachine(inventory); //Act VendingMachineItem itemAtSlot = vm.GetItemAtSlot("A2"); }
public void GetQuantityRemaining_ThrowsInvalidSlot() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() { testItem } } }; VendingMachine vm = new VendingMachine(inventory); //Act int quantityRemaining = vm.GetQuantityRemaining("A2"); }
public void GetItemAtSlot_OutOfStock() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() } }; VendingMachine vm = new VendingMachine(inventory); //Act VendingMachineItem itemAtSlot = vm.GetItemAtSlot("A1"); //Assert Assert.AreEqual(null, itemAtSlot); }
public void DispenseItem_Test_ItemSoldOut() { //arrange string slotTag = "B1"; VendingMachine testMachine = new VendingMachine(); testMachine.Restock(new List <string>(sampleStockFileLines)); testMachine.TakeMoney(40.00m); //act while (testMachine.Slots[slotTag].Count > 0) { testMachine.DispenseItem(slotTag); } //act VendingMachineItem soda = testMachine.DispenseItem(slotTag); }
public void CanWeGetProductWithSlotIdentifier() { List <VendingMachineItem> items = new List <VendingMachineItem>() { new VendingMachineItem("chip", "dkd", 4.0M, "sfa") }; // Arrange VendingMachine vm = new VendingMachine(items); // Act decimal balance = vm.FeedMoney(4.00M); VendingMachineItem vmi = vm.SelectProduct("sfa"); // Assert Assert.IsNotNull(vmi); Assert.AreEqual(0, vm.Balance); Assert.AreEqual(4, vmi.Quantity); }
public void GetQuantityRemaining_ReturnsValidQuantity() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() { testItem } } }; VendingMachine vm = new VendingMachine(inventory); //Act int quantityRemaining = vm.GetQuantityRemaining("A1"); //Assert Assert.AreEqual(1, quantityRemaining); }
public void DispenseItem_Test() { //arrange string slotTag = "B1"; VendingMachine testMachine = new VendingMachine(); testMachine.Restock(new List <string>(sampleStockFileLines));//restock from arbitrary list testMachine.TakeMoney(100.00m); //act VendingMachineItem soda = testMachine.DispenseItem(slotTag); //assert Assert.IsTrue(soda is Drink, "The machine dispensed the wrong item!"); Assert.AreEqual("Sprite", soda.Name, "The Machine dispensed a drink, but it was not the right drink!"); Assert.AreEqual(97.25m, testMachine.CurrentCredit, "The price of the soda was not deducted from the current Credit!"); Assert.AreEqual(testMachine.Slots[slotTag].Capacity - 1, testMachine.Slots[slotTag].Count, $"The quantity of items in slot {slotTag} didn't change after we tried to dispense"); }
public void Purchase_ValidPurchase() { //Arrange VendingMachineItem testItem = new VendingMachineItem("Test Chips", 1.25M); Dictionary <string, List <VendingMachineItem> > inventory = new Dictionary <string, List <VendingMachineItem> >() { { "A1", new List <VendingMachineItem>() { testItem } } }; VendingMachine vm = new VendingMachine(inventory); vm.FeedMoney(2); //Act VendingMachineItem purchasedItem = vm.Purchase("A1"); //Assert Assert.IsNotNull(purchasedItem); Assert.AreEqual(0, inventory["A1"].Count); Assert.AreEqual(0.75M, vm.CurrentBalance); }
public void VendingMachineItem_Constructor() { // Arrange string fakeItemName = "My Vending Machine Item"; decimal fakeItemPrice = 10.0M; ItemType fakeItemType = ItemType.Candy; int fakeItemSlot = 4; // Act VendingMachineItem result = new VendingMachineItem(fakeItemName, fakeItemPrice, fakeItemType, fakeItemSlot); // Assert // Item.Quantity Assert.AreEqual(5, result.Quantity); // Item.Name Assert.AreEqual("My Vending Machine Item", result.Name); // Item.Slot Assert.AreEqual(fakeItemSlot, result.Slot); // Item.Price Assert.AreEqual(10M, result.Price); // Item.Type Assert.AreEqual(ItemType.Candy, result.Type); }
public void SelectProduct() { Dictionary <string, VendingMachineItem> testAllItems = new Dictionary <string, VendingMachineItem>(); VendingMachine test = new VendingMachine(); VendingMachineItem testItem = new VendingMachineItem("Potato Crisps", 3.05); testAllItems.Add("A1", testItem); test.AllItems = testAllItems; int result = test.SelectProduct("A1"); Assert.AreEqual(2, result); test.FeedMoney(10); result = test.SelectProduct("A1"); Assert.AreEqual(1, result); result = test.SelectProduct("Garbage"); Assert.AreEqual(-1, result); testItem.Quantity = 0; result = test.SelectProduct("A1"); Assert.AreEqual(0, result); }
/// <summary> /// Prompts the user to select a product and purchases it. /// </summary> /// <param name="vm"></param> /// <returns></returns> public VendingMachineItem DisplaySelectProduct(VendingMachine vm) { bool tryAgain = true; VendingMachineItem purchasedItem = null; while (tryAgain == true) { Console.Clear(); string code = this.GetString("Please enter product code: ").ToUpper(); try { purchasedItem = vm.PurchaseItem(code); tryAgain = false; } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); return(null); } } return(purchasedItem); }
public override void Run() { string error = string.Empty; AuditWriter auditWriter = new AuditWriter(); while (true) { Console.Clear(); Console.Write("Errors: "); Console.WriteLine(error); Console.WriteLine("1) Feed Money"); Console.WriteLine("2) Select Product"); Console.WriteLine("3) Finish Transaction"); Console.WriteLine("B) Back"); Console.WriteLine(); Console.WriteLine($"Current money provided: ${vm.CurrentBal}"); string purchaseChoice = this.GetString("> Selection: ").ToLower(); if (purchaseChoice == "1") { decimal oldBal = vm.CurrentBal; this.DisplayFeedMoney(vm); auditWriter.WriteAudit(vm.CurrentBal, "FEED MONEY", oldBal); error = string.Empty; } else if (purchaseChoice == "2") { VendingMachineItem purchasedItem = this.DisplaySelectProduct(vm); if (purchasedItem != null) { decimal oldBal = vm.CurrentBal; this.purchased.Add(purchasedItem); error = string.Empty; auditWriter.WriteAudit(vm.CurrentBal, $"{purchasedItem.Name} {purchasedItem.Slot}", oldBal); } else { error = "Please try again."; } } else if (purchaseChoice == "3") { if (this.purchased.Count > 0) { decimal oldBal = vm.CurrentBal; this.FinishTransaction(vm); error = string.Empty; auditWriter.WriteAudit(vm.CurrentBal, "GIVE CHANGE", oldBal); foreach (VendingMachineItem purchase in this.purchased) { Console.WriteLine(purchase.MakeFoodSound()); } this.WriteSales(vm); this.purchased.RemoveRange(0, this.purchased.Count - 1); Console.ReadLine(); return; } else { error = "You havent purchased anything silly!"; } } else if (purchaseChoice == "b") { break; } else { error = "Invalid option."; } Console.Clear(); } }
public void Initialize() { vms = new VendingMachineSlot(); bubbleGum = new VendingMachineItem("Bubble Gum", 2.00M); candyBar = new VendingMachineItem("Candy Bar", 2.50M); }
public static int PlaceNewVendingMachine(int x, int y, int type, int style, int direction = 0) { try { Point16 point = new Point16(x, y); TileObjectData.OriginToTopLeft(type, style, ref point); VendingMachineItem toPlace = (Main.player[Main.myPlayer].inventory[Main.player[Main.myPlayer].selectedItem].modItem) as VendingMachineItem; if (toPlace == null) { return(399); } if (toPlace.hasShop && (toPlace.npcType == null || toPlace.npcType == "")) { toPlace.npcType = SoulOfNPC.ItemToTag(toPlace.item); } for (int i = 0; i < vm.Length; i++) { if (vm[i] != null && vm[i].x == x && vm[i].y == y) { vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop); if (Main.netMode != 0) { ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket(); pk.Write((byte)1); pk.Write((short)i); TagIO.Write(vm[i].Save(), pk); pk.Send(); } return(i); } } for (int i = 0; i < vm.Length; i++) { if (vm[i] == null) { vm[i] = new VendingMachineData(); vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop); if (Main.netMode != 0) { ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket(); pk.Write((byte)1); pk.Write((short)i); TagIO.Write(vm[i].Save(), pk); pk.Send(); } return(i); } else if (vm[i].isClear()) { vm[i].setDefaults(point.X, point.Y, toPlace.npcType, toPlace.hasShop); if (Main.netMode != 0) { ModPacket pk = ModLoader.GetMod("VendingMachines").GetPacket(); pk.Write((byte)1); pk.Write((short)i); TagIO.Write(vm[i].Save(), pk); pk.Send(); } return(i); } } return(399); }catch (Exception e) { Main.NewText(e.ToString()); return(399); } }
public void Initialize() { newItem = new VendingMachineItem(); }
public void TestMessage4() { item = new VendingMachineItem("Chips", 1.50M, "Chip"); Assert.AreEqual("Chew Chew, Yum!", item.SetMessage("Gum")); }
public void Initialize() { newObject = new VendingMachine(@"C:\Users\georgd\georgdeckner-c-sharp-material\team5-c-sharp-week4-pair-exercises\19_Mini-Capstone\etc\vendingmachine.csv"); newItem = new VendingMachineItem(); }
public void ConsumedMessageTest_C_Should_Be_Glug_Glug_2() { item = new VendingMachineItem("Cola", 1.25M, "C1"); Assert.AreEqual("Glug Glug, Yum", item.ConsumedMessage); }
public void ConsumedMessageTest_C_Should_Be_Glug_Glug_1() { item = new VendingMachineItem("Mountain Melter", 1.50M, "C3"); Assert.AreEqual("Glug Glug, Yum", item.ConsumedMessage); }
public void ConsumedMessageTest_B_Should_Be_Munch_Munch_2() { item = new VendingMachineItem("Cowtales", 1.50M, "B2"); Assert.AreEqual("Munch Munch, Yum", item.ConsumedMessage); }
public void ConsumedMessageTest_A_Should_Be_Crunch_Crunch_2() { item = new VendingMachineItem("Stackers", 1.45M, "A2"); Assert.AreEqual("Crunch Crunch, Yum", item.ConsumedMessage); }
public void ConsumedMessageTest_A_Should_Be_Crunch_Crunch() { item = new VendingMachineItem("Potato Crisps", 3.05M, "A1"); Assert.AreEqual("Crunch Crunch, Yum", item.ConsumedMessage); }
public void TestQuanity() { item = new VendingMachineItem("Chips", 1.50M, "Chip"); Assert.AreEqual(5, item.Quantity); }
public void VendingMachineItemTestCreate() { VendingMachineItem vmi = new VendingMachineItem(); Assert.IsNotNull(vmi); }
public void ConsumedMessageTest_D_Should_Be_Chew_Chew_() { item = new VendingMachineItem("Chiclets", 0.75M, "D3"); Assert.AreEqual("Chew Chew, Yum", item.ConsumedMessage); }
private decimal CalculateTransactionAmount(VendingMachineItem selectedItem, int itemAmount) => ItemPriceMapping[selectedItem] * itemAmount;
public void ConsumedMessageTest_D_Should_Be_Chew_Chew_2() { item = new VendingMachineItem("Little League Chew", 0.95M, "D2"); Assert.AreEqual("Chew Chew, Yum", item.ConsumedMessage); }
public void ConsumedMessageTest_B_Should_Be_Munch_Munch() { item = new VendingMachineItem("Moonpie", 1.80M, "B1"); Assert.AreEqual("Munch Munch, Yum", item.ConsumedMessage); }
public void TestMessage3() { item = new VendingMachineItem("Chips", 1.50M, "Chip"); Assert.AreEqual("Glug Glug, Yum!", item.SetMessage("Drink")); }