コード例 #1
0
        public void CoinsCounter_01()
        {
            int[]    coins        = { 3, 3, 3, 3, 3, 3 };
            string[] productNames = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);

            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(5);
            coffeeSlotMachine.InsertCoin(5);
            coffeeSlotMachine.InsertCoin(20);
            coffeeSlotMachine.InsertCoin(50);

            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(20);
            coffeeSlotMachine.InsertCoin(20);
            coffeeSlotMachine.InsertCoin(20);
            coffeeSlotMachine.SelectProduct("Tee", out _);
            coffeeSlotMachine.InsertCoin(50);
            coffeeSlotMachine.SelectProduct("Suppe", out _);

            coffeeSlotMachine.GetCounterForDepot(5, out int counter);
            Assert.AreEqual(5, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
            coffeeSlotMachine.GetCounterForDepot(10, out counter);
            Assert.AreEqual(1, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
            coffeeSlotMachine.GetCounterForDepot(20, out counter);
            Assert.AreEqual(6, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
            coffeeSlotMachine.GetCounterForDepot(50, out counter);
            Assert.AreEqual(4, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
            coffeeSlotMachine.GetCounterForDepot(100, out counter);
            Assert.AreEqual(2, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
            coffeeSlotMachine.GetCounterForDepot(200, out counter);
            Assert.AreEqual(4, counter, "Am Papier durchspielen, möglichst große Münzen zurückgeben");
        }
コード例 #2
0
        public void FourOrders200CentWithDonation_01()
        {
            int[]    coins = { 0, 0, 0, 3, 3, 3 };
            int[]    returnCoinsExpected = { 0, 0, 0, 0, 0, 0 }; // 1 * 100 und 1* 50 cent
            string[] productNames        = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out int donation);
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), new int[] { 0, 0, 0, 1, 1, 0 }), "Es bleiben keine passenden Münzen mehr übrig");
            Assert.AreEqual(0, donation, "Kein Spende");

            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out donation);
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), new int[] { 0, 0, 0, 1, 1, 0 }), "Es bleiben keine passenden Münzen mehr übrig");
            Assert.AreEqual(0, donation, "Kein Spende");

            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out donation);
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), new int[] { 0, 0, 0, 1, 1, 0 }), "Es bleiben keine passenden Münzen mehr übrig");
            Assert.AreEqual(0, donation, "Kein Spende");

            coffeeSlotMachine.InsertCoin(200);
            bool ok = coffeeSlotMachine.SelectProduct("Kaffee", out donation);

            Assert.IsTrue(ok, "SelectProduct sollte funktionieren");
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), new int[] { 0, 0, 0, 0, 0, 0 }), "Es bleiben keine passenden Münzen mehr übrig");
            Assert.AreEqual(150, donation, "Kein Retourgeld mehr");
            Assert.AreEqual(7, coffeeSlotMachine.CoinsInDepot, "7 * 200 cent");
        }
コード例 #3
0
        public void ProductsCounter_01()
        {
            int[]    coins        = { 2, 3, 4, 3, 3, 3 };
            string[] productNames = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);

            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(100);

            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(100);
            bool ok = coffeeSlotMachine.SelectProduct("tee", out _);

            Assert.IsFalse(ok, "tee gibt es nicht, nur Tee");
            coffeeSlotMachine.SelectProduct("Tee", out _);
            coffeeSlotMachine.InsertCoin(50);
            coffeeSlotMachine.SelectProduct("Suppe", out _);

            coffeeSlotMachine.GetCounterForProduct("Kaffee", out int counter);
            Assert.AreEqual(2, counter, "Es wurde 2 * Kaffee bestellt");
            coffeeSlotMachine.GetCounterForProduct("irgendwas", out counter);
            Assert.IsFalse(ok, "Produkt irgendwas ist nicht vorhanden");
            Assert.AreEqual(0, counter, "Im Fehlerfall 0 zurückgeben");
            coffeeSlotMachine.GetCounterForProduct("Suppe", out counter);
            Assert.AreEqual(1, counter, "Suppe gab es 1*");
            coffeeSlotMachine.GetCounterForProduct("Milch", out counter);
            Assert.AreEqual(0, counter, "Milch wurde nie bestellt");
        }
コード例 #4
0
        public void ThreeOrders200Cent_01()
        {
            int[]    coins        = { 0, 0, 0, 3, 3, 3 };
            string[] productNames = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);

            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out int donation);
            Assert.AreEqual(0, donation, "Es konnte das gesamte Restgeld zurückgegeben werden");
            Assert.AreEqual(6, coffeeSlotMachine.CoinsInDepot, "6 * 200 cent");
        }
コード例 #5
0
        public void FourOrders200CentEmptyMachine_01()
        {
            int[]    coins        = { 2, 3, 4, 3, 3, 3 };
            string[] productNames = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);

            coffeeSlotMachine.EmptyDepot(out int cents);
            Assert.AreEqual(1400, cents, "7 * 200 Cent");
            Assert.AreEqual(0, coffeeSlotMachine.CoinsInDepot, "Depot wurde geleert");
            coffeeSlotMachine.EmptyDepot(out cents);
            Assert.AreEqual(0, cents, "Depot wurde gerade geleert");
        }
コード例 #6
0
        public void FourOrders200CentWithLessDonation_01()
        {
            int[]    coins = { 2, 3, 4, 3, 3, 3 };
            int[]    returnCoinsExpected = { 2, 3, 4, 0, 0, 0 };
            string[] productNames        = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            coffeeSlotMachine.SelectProduct("Kaffee", out _);
            coffeeSlotMachine.InsertCoin(200);
            bool ok = coffeeSlotMachine.SelectProduct("Kaffee", out int donation);

            Assert.IsTrue(ok, "SelectProduct sollte funktionieren");
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), returnCoinsExpected), "Ganzes Kleingeld wurde zurückgegeben");
            Assert.AreEqual(30, donation, "30 cent fehlen beim retourgeld");
            Assert.AreEqual(7, coffeeSlotMachine.CoinsInDepot, "7 * 200 cent");
        }
コード例 #7
0
        public void NormalOrder_01()
        {
            int[]    coins = { 1, 2, 3, 4, 5, 6 };
            int[]    returnCoinsExpected = { 0, 0, 0, 1, 0, 0 }; // 1* 50 cent
            string[] productNames        = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);
            bool ok = coffeeSlotMachine.InsertCoin(100);

            Assert.IsTrue(ok, "InsertCoin sollte funktionieren");
            ok = coffeeSlotMachine.SelectProduct("Kaffee", out int donation);
            Assert.IsTrue(ok, "SelectProduct sollte funktionieren");
            Assert.IsTrue(CompareArrays(coffeeSlotMachine.EmptyEjection(out _), returnCoinsExpected), "Arrays mit Retourgeld sind nicht gleich");
            Assert.AreEqual(0, donation, "Es konnte das gesamte Restgeld zurückgegeben werden");
            Assert.AreEqual(21, coffeeSlotMachine.CoinsInDepot, "100 cent hinein und 50 cent hinaus");
        }
コード例 #8
0
        public void MoreCoins_01()
        {
            int[]    coins        = { 1, 2, 3, 4, 5, 6 };
            string[] productNames = { "Kaffee", "Tee", "Suppe", "Milch" };
            Logic.CoffeeSlotMachine coffeeSlotMachine = new Logic.CoffeeSlotMachine(coins, productNames);
            bool ok = coffeeSlotMachine.InsertCoin(20);

            Assert.IsTrue(ok, "20 ist eine gültige Münze");
            ok = coffeeSlotMachine.InsertCoin(20);
            Assert.IsTrue(ok, "20 ist eine gültige Münze");
            ok = coffeeSlotMachine.InsertCoin(10);
            Assert.IsTrue(ok, "10 ist eine gültige Münze");
            Assert.AreEqual(21, coffeeSlotMachine.CoinsInDepot, "Münzen wurden noch nicht übernommen");
            ok = coffeeSlotMachine.SelectProduct("Tee", out _);
            Assert.IsTrue(ok, "Auswahl Tee sollte funktionieren");
            Assert.AreEqual(24, coffeeSlotMachine.CoinsInDepot, "3 Münzen dazu eingenommen");
        }