Exemplo n.º 1
0
        public void TestAvailabelAmount200Set_CorrectValue()
        {
            var UncorrectValue = 1000000;
            var atmLogic       = new ATMLogic();

            Assert.Throws <ArgumentException>(() => { atmLogic.AvailabelAmount200 = UncorrectValue; },
                                              "Должно возникать исключение, если сумма банкнот больше 61000");
        }
Exemplo n.º 2
0
        public void TestAvailabelAmount200Get_CorrectValue()
        {
            var expected = 200;
            var atmLogic = new ATMLogic();

            atmLogic.AvailabelAmount200 = expected;
            var actual = atmLogic.AvailabelAmount200;

            Assert.AreEqual(expected, actual, "Геттер AvailabelAmount200 возвращает неправильное имя заметки");
        }
Exemplo n.º 3
0
        public void TestTotalAvailabelAmountGet_CorrectValue()
        {
            var expected = 5000;
            var atmLogic = new ATMLogic();

            atmLogic.TotalAvailabelAmount = expected;
            var actual = atmLogic.TotalAvailabelAmount;

            Assert.AreEqual(expected, actual, "Геттер TotalAvailabelAmount возвращает неправильное имя заметки");
        }
Exemplo n.º 4
0
        private void InsertButton_Click(object sender, EventArgs e)
        {
            ATMLogic atmLogic = new ATMLogic();

            this.DialogResult = DialogResult.OK;

            //Записываем в переменную _project данные из файла
            _project = ProjectManager.LoadFromFile(@"..\ATMCondition.txt");

            //Если файл отсутствует
            if (_project == null)
            {
                //Проверяем вносимую сумму
                if (Sum <= 300000)
                {
                    //Проверка на кол-во вносимых купюр номиналом 10
                    if (Banknote10 <= 15000)
                    {
                        _ATMLogic.AvailabelAmount10 = Banknote10;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 10.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 50
                    if (Banknote50 <= 15000)
                    {
                        _ATMLogic.AvailabelAmount50 = Banknote50;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 50.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 100
                    if (Banknote100 <= 60000)
                    {
                        _ATMLogic.AvailabelAmount100 = Banknote100;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 100.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 200
                    if (Banknote200 <= 60000)
                    {
                        _ATMLogic.AvailabelAmount200 = Banknote200;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 200.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 500
                    if (Banknote500 <= 300000)
                    {
                        _ATMLogic.AvailabelAmount500 = Banknote500;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 500.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 1000
                    if (Banknote1000 <= 600000)
                    {
                        _ATMLogic.AvailabelAmount1000 = Banknote1000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 1000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 2000
                    if (Banknote2000 <= 600000)
                    {
                        _ATMLogic.AvailabelAmount2000 = Banknote2000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 2000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка на кол-во вносимых купюр номиналом 5000
                    if (Banknote5000 <= 750000)
                    {
                        _ATMLogic.AvailabelAmount5000 = Banknote5000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 5000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    _ATMLogic.TotalAvailabelAmount = Sum;

                    //Передаем данные в класс atmLogic для проверки
                    atmLogic.AvailabelAmount10    = Banknote10;
                    atmLogic.AvailabelAmount50    = Banknote50;
                    atmLogic.AvailabelAmount100   = Banknote100;
                    atmLogic.AvailabelAmount200   = Banknote200;
                    atmLogic.AvailabelAmount500   = Banknote500;
                    atmLogic.AvailabelAmount1000  = Banknote1000;
                    atmLogic.AvailabelAmount2000  = Banknote2000;
                    atmLogic.AvailabelAmount5000  = Banknote5000;
                    atmLogic.TotalAvailabelAmount = Sum;
                }
                else
                {
                    DialogResult result = MessageBox.Show("Нельзя вносить более 300 000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Show();
                }
            }


            //Если файл не отсутствует
            if (_project != null)
            {
                var CurrentLoadConditions = _project.ATMCondition;

                //Если сумма, хранящаяся в данкомате + сумма, вносимая пользователем меньше либо равно 300 000
                if (CurrentLoadConditions[0].TotalAvailabelAmount + Sum <= 300000)
                {
                    //Проверка наличия места в хранилище купюр номиналом 10
                    if (CurrentLoadConditions[0].AvailabelAmount10 + Banknote10 <= 15000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount10 += Banknote10;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 10.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 50
                    if (CurrentLoadConditions[0].AvailabelAmount50 + Banknote50 <= 15000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount50 += Banknote50;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 50.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 100
                    if (CurrentLoadConditions[0].AvailabelAmount100 + Banknote100 <= 60000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount100 += Banknote100;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 100.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 200
                    if (CurrentLoadConditions[0].AvailabelAmount200 + Banknote200 <= 60000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount200 += Banknote200;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 200.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 500
                    if (CurrentLoadConditions[0].AvailabelAmount500 + Banknote500 <= 300000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount500 += Banknote500;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 500.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 1000
                    if (CurrentLoadConditions[0].AvailabelAmount1000 + Banknote1000 <= 600000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount1000 += Banknote1000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 1000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 2000
                    if (CurrentLoadConditions[0].AvailabelAmount2000 + Banknote2000 <= 600000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount2000 += Banknote2000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 2000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }

                    //Проверка наличия места в хранилище купюр номиналом 5000
                    if (CurrentLoadConditions[0].AvailabelAmount5000 + Banknote5000 <= 750000)
                    {
                        CurrentLoadConditions[0].AvailabelAmount5000 += Banknote5000;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно места в хранилище купюр номиналом 5000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();
                    }
                    CurrentLoadConditions[0].TotalAvailabelAmount += Sum;
                }
                else
                {
                    DialogResult result = MessageBox.Show("Нельзя вносить более 300 000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.Show();
                }

                //Передаем данные в абстрактный класс
                _ATMLogic.AvailabelAmount10    = CurrentLoadConditions[0].AvailabelAmount10;
                _ATMLogic.AvailabelAmount50    = CurrentLoadConditions[0].AvailabelAmount50;
                _ATMLogic.AvailabelAmount100   = CurrentLoadConditions[0].AvailabelAmount100;
                _ATMLogic.AvailabelAmount200   = CurrentLoadConditions[0].AvailabelAmount200;
                _ATMLogic.AvailabelAmount500   = CurrentLoadConditions[0].AvailabelAmount500;
                _ATMLogic.AvailabelAmount1000  = CurrentLoadConditions[0].AvailabelAmount1000;
                _ATMLogic.AvailabelAmount2000  = CurrentLoadConditions[0].AvailabelAmount2000;
                _ATMLogic.AvailabelAmount5000  = CurrentLoadConditions[0].AvailabelAmount5000;
                _ATMLogic.TotalAvailabelAmount = CurrentLoadConditions[0].TotalAvailabelAmount;

                //Передаем данные на проверку
                atmLogic.AvailabelAmount10    = CurrentLoadConditions[0].AvailabelAmount10;
                atmLogic.AvailabelAmount50    = CurrentLoadConditions[0].AvailabelAmount50;
                atmLogic.AvailabelAmount100   = CurrentLoadConditions[0].AvailabelAmount100;
                atmLogic.AvailabelAmount200   = CurrentLoadConditions[0].AvailabelAmount200;
                atmLogic.AvailabelAmount500   = CurrentLoadConditions[0].AvailabelAmount500;
                atmLogic.AvailabelAmount1000  = CurrentLoadConditions[0].AvailabelAmount1000;
                atmLogic.AvailabelAmount2000  = CurrentLoadConditions[0].AvailabelAmount2000;
                atmLogic.AvailabelAmount5000  = CurrentLoadConditions[0].AvailabelAmount5000;
                atmLogic.TotalAvailabelAmount = CurrentLoadConditions[0].TotalAvailabelAmount;
            }
        }
Exemplo n.º 5
0
        private void GiveOutButton_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;

            //Считываем данные из файла в переменную _project
            _project = ProjectManager.LoadFromFile(@"..\ATMCondition.txt");

            //Если файл отсутствует
            if (_project == null)
            {
                //Выводим сообщение о том, что банкомат не пополнялся
                DialogResult result = MessageBox.Show("Банкомат не пополнялся, продолжить?", "Ошибка", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
                this.Show();
            }

            //Если выдаваемая сумма меньше 150 000
            if (Sum <= 150000)
            {
                ATMLogic atmLogic = new ATMLogic();

                if (_project != null)
                {
                    //Создаем переменную, присваимваем ей значение
                    int SumCurrent = 0;

                    //Записываем в переменную CurrentLoadConditions содержимое списка ATMCondition
                    var CurrentLoadConditions = _project.ATMCondition;

                    //Проверяем достаточно ли полной суммы в банкомате
                    if (CurrentLoadConditions[0].TotalAvailabelAmount - Sum >= 0)
                    {
                        //Проверяем достаточно ли купюр номиналом 10 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount10 - Banknote10 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount10 -= Banknote10;
                            SumCurrent += Banknote10;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 10.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 50 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount50 - Banknote50 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount50 -= Banknote50;
                            SumCurrent += Banknote50;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 50.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 100 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount100 - Banknote100 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount100 -= Banknote100;
                            SumCurrent += Banknote100;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 100.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 200 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount200 - Banknote200 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount200 -= Banknote200;
                            SumCurrent += Banknote200;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 200.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 500 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount500 - Banknote500 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount500 -= Banknote500;
                            SumCurrent += Banknote500;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 500.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 1000 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount1000 - Banknote1000 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount1000 -= Banknote1000;
                            SumCurrent += Banknote1000;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 1000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 2000 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount2000 - Banknote2000 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount2000 -= Banknote2000;
                            SumCurrent += Banknote2000;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 2000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Проверяем достаточно ли купюр номиналом 5000 в банкомте
                        if (CurrentLoadConditions[0].AvailabelAmount5000 - Banknote5000 >= 0)
                        {
                            CurrentLoadConditions[0].AvailabelAmount5000 -= Banknote5000;
                            SumCurrent += Banknote5000;
                        }
                        else
                        {
                            DialogResult result = MessageBox.Show("Недостаточно купюр номиналом 5000.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            this.Show();
                        }

                        //Вычитаем из полной суммы банкомата сумму, которую ввел пользователь при выдаче
                        CurrentLoadConditions[0].TotalAvailabelAmount -= SumCurrent;

                        //Передаем данные в абстрактный класс для проверки
                        _ATMLogic.AvailabelAmount10    = CurrentLoadConditions[0].AvailabelAmount10;
                        _ATMLogic.AvailabelAmount50    = CurrentLoadConditions[0].AvailabelAmount50;
                        _ATMLogic.AvailabelAmount100   = CurrentLoadConditions[0].AvailabelAmount100;
                        _ATMLogic.AvailabelAmount200   = CurrentLoadConditions[0].AvailabelAmount200;
                        _ATMLogic.AvailabelAmount500   = CurrentLoadConditions[0].AvailabelAmount500;
                        _ATMLogic.AvailabelAmount1000  = CurrentLoadConditions[0].AvailabelAmount1000;
                        _ATMLogic.AvailabelAmount2000  = CurrentLoadConditions[0].AvailabelAmount2000;
                        _ATMLogic.AvailabelAmount5000  = CurrentLoadConditions[0].AvailabelAmount5000;
                        _ATMLogic.TotalAvailabelAmount = CurrentLoadConditions[0].TotalAvailabelAmount;

                        this.DialogResult = DialogResult.OK;
                    }
                    else
                    {
                        DialogResult result = MessageBox.Show("Недостаточно средств.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Show();

                        //Передаем данные в абстрактный класс для проверки
                        _ATMLogic.AvailabelAmount10    = CurrentLoadConditions[0].AvailabelAmount10;
                        _ATMLogic.AvailabelAmount50    = CurrentLoadConditions[0].AvailabelAmount50;
                        _ATMLogic.AvailabelAmount100   = CurrentLoadConditions[0].AvailabelAmount100;
                        _ATMLogic.AvailabelAmount200   = CurrentLoadConditions[0].AvailabelAmount200;
                        _ATMLogic.AvailabelAmount500   = CurrentLoadConditions[0].AvailabelAmount500;
                        _ATMLogic.AvailabelAmount1000  = CurrentLoadConditions[0].AvailabelAmount1000;
                        _ATMLogic.AvailabelAmount2000  = CurrentLoadConditions[0].AvailabelAmount2000;
                        _ATMLogic.AvailabelAmount5000  = CurrentLoadConditions[0].AvailabelAmount5000;
                        _ATMLogic.TotalAvailabelAmount = CurrentLoadConditions[0].TotalAvailabelAmount;
                    }
                }
            }
            else
            {
                DialogResult result = MessageBox.Show("Нельзя выдать более 150 000", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Show();
            }
        }