Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            var vm = new VendingMachine(new CoinService(), new ProductService(new ProductRepository(), new ProductInventoryRepository()));

            //case 1 - invalid coins
            Console.WriteLine("\ncase 1 - invalid coins\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Weight = 3.25m, Diameter = 18.0m, Thickness = 1.70000m
            }));

            //case 2 - valid coins,return coins
            Console.WriteLine("\ncase 2 - valid coins,return coins\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Weight = 3.25m, Diameter = 18.0m, Thickness = 1.70m
            }));
            WriteItemChangeToScreen(vm.ReturnCoins());

            //case 3 - valid coins, invalid product code
            Console.WriteLine("\ncase 3 - valid coins, invalid product code\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Weight = 3.25m, Diameter = 18.0m, Thickness = 1.70m
            }));
            WriteVendingResponseToScreen(vm.SelectProduct("COOO1"));

            //case 4 - valid coins, valid product code, less amount entered
            Console.WriteLine("\ncase 4 - valid coins, valid product code, less amount entered\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Weight = 3.25m, Diameter = 18.0m, Thickness = 1.70m
            }));
            WriteVendingResponseToScreen(vm.SelectProduct("COKE1"));

            //case 5 - valid coins, valid product code, more amount entered, make change
            Console.WriteLine("\ncase 5 - valid coins, valid product code, more amount entered, make change\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Diameter = 28.4m, Thickness = 2.5m, Weight = 12.0m
            }));
            WriteVendingResponseToScreen(vm.SelectProduct("COKE1"));

            //case 6 - valid coins, valid product code, correct(>=) amount entered, sold out
            Console.WriteLine("\ncase 6 - valid coins, valid product code, correct(>=) amount entered, sold out\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Diameter = 22.5m, Thickness = 3.15m, Weight = 9.5m
            }));
            WriteVendingResponseToScreen(vm.SelectProduct("PEPSI1"));

            //case 7 - valid coins, valid product code, correct(>=) amount entered, sold out, return coins
            Console.WriteLine("\ncase 7 - valid coins, valid product code, correct(>=) amount entered, sold out, return coins\n");
            WriteVendingResponseToScreen(vm.AcceptCoin(new InputCoin()
            {
                Diameter = 22.5m, Thickness = 3.15m, Weight = 9.5m
            }));
            WriteVendingResponseToScreen(vm.SelectProduct("PEPSI1"));
            WriteItemChangeToScreen(vm.ReturnCoins());

            Console.ReadLine();
        }