Exemple #1
0
        public void VegetableTrayTakeOutExceptionTest()
        {
            VegetableTray vegetableTray = new VegetableTray();
            Tomato        tomato        = new Tomato();
            Cabbage       cabbage       = new Cabbage();
            LadyFinger    ladyFinger    = new LadyFinger();

            vegetableTray.Add(tomato, 25);

            var actualVegetableQuantity = vegetableTray.GetVegetableQuantity();

            Assert.Throws <VegetableNotFoundException>(() => vegetableTray.TakeOut(cabbage, 20));
        }
Exemple #2
0
        public void VegetableTrayTakeOutPositiveTest()
        {
            VegetableTray vegetableTray = new VegetableTray();
            Tomato        tomato        = new Tomato();
            Cabbage       cabbage       = new Cabbage();
            LadyFinger    ladyFinger    = new LadyFinger();

            vegetableTray.Add(tomato, 25);
            vegetableTray.TakeOut(tomato, 20);

            var actualVegetableQuantity = vegetableTray.GetVegetableQuantity();

            var expectedVegetableQuantity = new List <KeyValuePair <Vegetable, int> >();

            expectedVegetableQuantity.Add(new KeyValuePair <Vegetable, int>(tomato, 5));

            Assert.Equal(expectedVegetableQuantity, actualVegetableQuantity);
        }
Exemple #3
0
        public void GetInsufficientVegetableQuantityTest()
        {
            var     inMemoryStorage = new InMemoryStorage();
            var     config          = new ConfigurationManager(inMemoryStorage);
            var     vegetableTray   = new VegetableTray();
            Tomato  tomato          = new Tomato();
            Cabbage cabbage         = new Cabbage();

            config.SetMinimumQuantity(tomato, 3);
            config.SetMinimumQuantity(cabbage, 1);

            vegetableTray.Add(tomato, 5);
            vegetableTray.Add(cabbage, 3);

            vegetableTray.TakeOut(tomato, 3);

            VegetableTracker vegetableTracker = new VegetableTracker(vegetableTray, config);

            Assert.AreEqual(1, vegetableTracker.GetInsufficientVegetableQuantity().Count);
        }
        public void AddVegetableToEmptyTrayTest()
        {
            var tray = new VegetableTray();

            tray.Add(new Tomato(), 8000);
            tray.Add(new Cabbage(), 5000);

            List <KeyValuePair <Vegetable, int> > cartItems = new List <KeyValuePair <Vegetable, int> >()
            {
                new KeyValuePair <Vegetable, int>(new Tomato(), 8000),
                new KeyValuePair <Vegetable, int>(new Cabbage(), 5000)
            };

            var trayVegetables = tray.GetVegetableQuantity();

            for (int i = 0; i < cartItems.Count; i++)
            {
                Assert.Equal(cartItems[i].Value, trayVegetables[i].Value);
            }
        }
        public void PlaceOrder()
        {
            Tomato  tomato  = new Tomato();
            Cabbage cabbage = new Cabbage();

            VegetableTray tray = new VegetableTray();

            tray.Add(tomato, 5000);
            tray.Add(cabbage, 4000);


            IStorage storage = new InMemoryStorage();

            ConfigurationManager configurationManager = new ConfigurationManager(storage);

            configurationManager.SetMinimumQuantity(tomato, 2000);
            configurationManager.SetMinimumQuantity(cabbage, 2000);

            tray.TakeOut(tomato, 4000);

            VegetableTracker vegetableTracker = new VegetableTracker(configurationManager, tray);
            var insufficientVegetables        = vegetableTracker.GetInsufficientVegetableQuantity();

            Order order = new Order(vegetableTracker, configurationManager, tray);

            order.PlaceOrder();

            List <KeyValuePair <Vegetable, int> > cartItems = new List <KeyValuePair <Vegetable, int> >()
            {
                new KeyValuePair <Vegetable, int>(new Tomato(), 2000),
                new KeyValuePair <Vegetable, int>(new Cabbage(), 4000)
            };

            var trayVegetables = tray.GetVegetableQuantity();

            for (int i = 0; i < cartItems.Count; i++)
            {
                Assert.Equal(cartItems[i].Value, trayVegetables[i].Value);
            }
        }
Exemple #6
0
        public void PlaceOrderOfInsufficientVegetablesTest()
        {
            var vegetableTray        = new VegetableTray();
            var inMemoryStorage      = new InMemoryStorage();
            var configurationManager = new ConfigurationManager(inMemoryStorage);

            Tomato  tomato  = new Tomato();
            Cabbage cabbage = new Cabbage();

            configurationManager.SetMinimumQuantity(tomato, 3);
            configurationManager.SetMinimumQuantity(cabbage, 1);

            vegetableTray.Add(tomato, 1);
            vegetableTray.Add(cabbage, 3);

            var placeOrder      = new PlaceOrder(vegetableTray, configurationManager);
            var placedOrderList = new Dictionary <Vegetable, int>();

            placedOrderList.Add(tomato, 2);

            Assert.AreEqual(placedOrderList.Count, placeOrder.PlaceOrderOfInsufficientVegetables().Count);
        }
        public void InsufficientQauntity()
        {
            Tomato  tomato  = new Tomato();
            Cabbage cabbage = new Cabbage();

            VegetableTray tray = new VegetableTray();

            tray.Add(tomato, 5000);
            tray.Add(cabbage, 4000);
            tray.TakeOut(tomato, 4000);

            IStorage storage = new InMemoryStorage();

            ConfigurationManager configurationManager = new ConfigurationManager(storage);

            configurationManager.SetMinimumQuantity(tomato, 2000);
            configurationManager.SetMinimumQuantity(cabbage, 2000);

            VegetableTracker vegetableTracker = new VegetableTracker(configurationManager, tray);
            var insufficientVegetables        = vegetableTracker.GetInsufficientVegetableQuantity();

            Assert.Equal(tomato.Name, insufficientVegetables[0].Key.Name);
        }
        public void TakeOutVegetableFromTray()
        {
            var     tray    = new VegetableTray();
            Tomato  tomato  = new Tomato();
            Cabbage cabbage = new Cabbage();

            tray.Add(tomato, 8000);
            tray.Add(cabbage, 5000);
            tray.TakeOut(tomato, 2000);
            tray.TakeOut(cabbage, 2000);

            var trayVegetables = tray.GetVegetableQuantity();

            List <KeyValuePair <Vegetable, int> > cartItems = new List <KeyValuePair <Vegetable, int> >()
            {
                new KeyValuePair <Vegetable, int>(new Tomato(), 6000),
                new KeyValuePair <Vegetable, int>(new Cabbage(), 3000)
            };

            for (int i = 0; i < cartItems.Count; i++)
            {
                Assert.Equal(cartItems[i].Value, trayVegetables[i].Value);
            }
        }
        public void WhenNoVegetableIsAdded()
        {
            VegetableTray tray = new VegetableTray();

            Assert.Throws <VegetableNotFoundException>(() => tray.TakeOut(new Tomato(), 2000));
        }
 public void AddVegetableToEmptyTrayTest()
 {
     var tray = new VegetableTray();
 }