示例#1
0
        public void CanGrantTest()
        {
            var dic    = new Dictionary <uint, uint>();
            var target = new Cashpoint(true, dic);

            Assert.IsTrue(target.CanGrant(0), "Банкомат не может выдать 0");

            target.AddBanknote(5, 1);
            Assert.IsTrue(target.CanGrant(5), "Банкомат не может выдать 5=5");

            target.AddBanknote(6, 1);
            Assert.IsFalse(target.CanGrant(10), "Банкомат выдал 10 != 6+5");

            target.AddBanknote(3, 1);
            Assert.IsTrue(target.CanGrant(8), "Банкомат не смог выдать 5+3=8");

            target.AddBanknote(15, 1);
            target.AddBanknote(14, 1);

            Assert.IsTrue(target.CanGrant(28), "Банкомат не смог выдать 5+3+6+14=28");
            Assert.IsFalse(target.CanGrant(16), "Банкомат как-то смог выдать 16 != 14+3");
            Assert.IsFalse(target.CanGrant(44), "Банкомат как-то смог 44 > 5+6+3+15+14");

            Assert.IsTrue(target.CanGrant(target.Total), "Банкомат не смог выдать всю свою сумму(банкноты не повторяются)");

            target.AddBanknote(50, 2);
            target.AddBanknote(10, 10);
            target.RemoveBanknote(10, 5);
            Assert.IsTrue(target.CanGrant(150), "Банкомат не смог выдать 150");
            target.RemoveBanknote(50, 1);
            target.RemoveBanknote(10, 3);
            Assert.IsTrue(target.CanGrant(70), "Банкомат не смог выдать 70");
        }
示例#2
0
        public void CanGrant_SumIsZero_ShouldGrant()
        {
            var cashpoint = new Cashpoint();

            Assert.That(
                cashpoint.CanGrant(0),
                "Банкомат не смог выдать 0");

            cashpoint.AddBanknote(5);

            Assert.That(
                cashpoint.CanGrant(0),
                "Банкомат не смог выдать 0 после добавления купюры");
        }
示例#3
0
        public void CanGrant_SumNotEqualToSingleBanknote_ShouldNotGrant()
        {
            var cashpoint = new Cashpoint();

            cashpoint.AddBanknote(5);

            Assert.That(
                cashpoint.CanGrant(4),
                Is.False,
                "Банкомат смог выдать значение меньше номинала единственной купюры");

            Assert.That(
                cashpoint.CanGrant(6),
                Is.False,
                "Банкомат смог выдать значение больше номинала единственной купюры");
        }
示例#4
0
        public void CanGrant_PerformanceTest()
        {
            var cashpoint = new Cashpoint();

            for (var i = 0; i < 2; i++)
            {
                cashpoint.AddBanknote(10);
                cashpoint.AddBanknote(50);
                cashpoint.AddBanknote(100);
                cashpoint.AddBanknote(200);
                cashpoint.AddBanknote(500);
                cashpoint.AddBanknote(1000);
                cashpoint.AddBanknote(2000);
                cashpoint.AddBanknote(5000);
            }

            Assert.That(cashpoint.CanGrant(3350));
            Assert.That(cashpoint.CanGrant(3980), Is.False);
        }
示例#5
0
        public void CanGrant_SumEqualsToMultipleBanknotes_ShouldGrant()
        {
            var cashpoint = new Cashpoint();

            cashpoint.AddBanknote(5, 3);

            Assert.That(
                cashpoint.CanGrant(15),
                "Банкомат не смог выдать имеющуюся в нем сумму");
        }
示例#6
0
        public void CanGrant_SumEqualsToSingleBanknote_ShouldGrant()
        {
            var cashpoint = new Cashpoint();

            cashpoint.AddBanknote(5);

            Assert.That(
                cashpoint.CanGrant(5),
                "Банкомат не смог выдать единственную банкноту");
        }
示例#7
0
        public void CanGrant_SumEqualsToBanknotesTotal_ShouldGrant()
        {
            var cashpoint = new Cashpoint();

            cashpoint.AddBanknote(5);
            cashpoint.AddBanknote(3);

            Assert.That(
                cashpoint.CanGrant(8),
                "Банкомат не смог выдать сумму двух купюр");
        }
示例#8
0
        public void CanGrant_MultipleBanknotesIntermediateValues_ShouldNotGrant()
        {
            var cashpoint = new Cashpoint();

            cashpoint.AddBanknote(5, 1);
            cashpoint.AddBanknote(3, 1);

            Assert.That(
                cashpoint.CanGrant(6),
                Is.False,
                "Банкомат смог выдать значение между номиналами купюр");
        }