예제 #1
0
        public void DispenseTest()
        {
            Dispenser dispenser = new Dispenser();

            VendingMachine  vendingMachine  = VendingMachine.Instance;
            ContainableItem containableItem = Helpers.ContainableItem;
            int             initialQuantity = containableItem.Product.Quantity;
            int             id = containableItem.Position.Id;

            vendingMachine.Items.Add(containableItem);
            ContainableItem vendingMachineItem = vendingMachine.Items.FirstOrDefault(item => item.Position.Id == id);

            Assert.ThrowsException <ProductNotFoundException>(() => dispenser.Dispense(23));
            Assert.IsNotNull(dispenser.Dispense(id));

            dispenser.Dispense(id);
            Assert.AreNotEqual(initialQuantity, vendingMachine.Items.FirstOrDefault(item => item.Position.Id == id).Product.Quantity);

            vendingMachineItem.Product.Quantity = 0;
            Assert.ThrowsException <ProductNotFoundException>(() => dispenser.Dispense(id));

            vendingMachineItem.Product.Quantity++;
            vendingMachineItem.Product = null;
            Assert.ThrowsException <ProductNotFoundException>(() => dispenser.Dispense(id));
        }
예제 #2
0
        public void Dispense_DispeneseOneProductBandHasTwoItems_CountReturnOne()
        {
            skittlesBand.Add(skittlesItem);
            skittlesBand.Add(skittlesItem);

            dispenser.Dispense(skittlesItem);

            Assert.AreEqual(1, skittlesBand.Count());
        }