Пример #1
0
        public void TestDeleteAviary()
        {
            var zoo = new Zoo("name", "address");
            //Корректное удаление существующего пустого закрытого вольера
            var aviary = new Cage(CageType.WithRocks);

            zoo.AddAviary(aviary);
            zoo.CloseAviary(aviary.Number);
            Assert.AreEqual(true, zoo.DeleteAviary(aviary.Number));
            Assert.AreEqual(null, zoo.FindAviary(aviary.Number));

            //Попытка удалить незакрытый вольер
            System.Threading.Thread.Sleep(10);
            var aviary2 = new Cage(CageType.WithTrees);

            zoo.AddAviary(aviary2);
            Assert.AreEqual(false, zoo.DeleteAviary(aviary2.Number));

            //Попытка удалить не существующий вольер
            try
            {
                zoo.DeleteAviary("any number");
                Assert.Fail();
            }
            catch (ArgumentException) { }

            //Попытка удалить уже удаленный вольер
            try
            {
                zoo.DeleteAviary(aviary.Number);
                Assert.Fail();
            }
            catch (ArgumentException) { }
        }
Пример #2
0
        private void CloseAviary()
        {
            Console.Clear();
            Console.Write("Введите номер вольера:");
            var number = Console.ReadLine();

            try
            {
                if (_zoo.CloseAviary(number))
                {
                    Console.WriteLine("Вольер с номером {0} успешно закрыт", number);
                }
                else
                {
                    Console.WriteLine("Вольер с номером {0} не может быть закрыт (например, занят или уже закрыт)", number);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Вольер с номером {0} не существует", number);
            }
            Console.WriteLine("------------------------------------------------");
            Console.WriteLine("Нажмите любую клавишу для возврата в меню...");
            Console.ReadKey();
        }
Пример #3
0
        public void TestCloseAviary()
        {
            var zoo = new Zoo("name", "address");

            //Корректное закрытие открытого вольера
            var aviary = new Cage(CageType.WithRocks);

            zoo.AddAviary(aviary);
            Assert.AreEqual(true, zoo.CloseAviary(aviary.Number));
            Assert.AreEqual(AviaryStatus.Closed, zoo.FindAviary(aviary.Number).Status);

            //Попытка закрыть уже закрытый вольер
            Assert.AreEqual(false, zoo.CloseAviary(aviary.Number));

            //Попытка закрыть несуществующий вольер
            try
            {
                zoo.CloseAviary("any number");
                Assert.Fail();
            }
            catch (ArgumentException) { }
        }
Пример #4
0
        public void TestGetFullListOfAviaries()
        {
            var zoo = new Zoo("name", "address");

            //Количество вольеров в непустом зоопарке
            var aviary1 = new Cage(CageType.WithRocks);

            zoo.AddAviary(aviary1);
            Assert.AreEqual(1, zoo.GetListOfAviaries().Count);

            //Количество вольеров в пустом зоопарке
            zoo.CloseAviary(aviary1.Number);
            zoo.DeleteAviary(aviary1.Number);
            Assert.AreEqual(0, zoo.GetListOfAviaries().Count);
        }
Пример #5
0
        public void TestTransferAnimal()
        {
            var zoo = new Zoo("name", "address");

            //Успешная попытка переместить животное в существующий подходящий вольер
            var aviary1 = new Cage(CageType.WithRocks);
            var animal1 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1");

            zoo.AddAviary(aviary1);
            zoo.SettleAnimal(animal1, aviary1);
            var aviary2 = new Cage(CageType.WithTrees, 5, 1);

            zoo.AddAviary(aviary2);
            Assert.AreEqual(true, zoo.TransferAnimal(zoo.FindAnimal(animal1.Id), zoo.FindAviary(aviary2.Number)));

            //Неуспешная попытка переместить животное в существующий не подходящий вольер
            var aviary3 = new Pool(PoolType.IndoorsPool);

            zoo.AddAviary(aviary3);
            Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal1.Id), zoo.FindAviary(aviary3.Number)));

            //Попытка переместить отсутствующее в зоопарке животное(несуществующее) в имеющийся вольер
            var animal2 = new Mammal(MammalDetachment.Artiodactyla, "family1", "genus1", "species1");

            try
            {
                zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary1.Number));
                Assert.Fail();
            }
            catch (ArgumentException) { }

            //Попытка переместить отсутствующее в зоопарке животное в имеющийся вольер
            try
            {
                zoo.TransferAnimal(animal2, zoo.FindAviary(aviary1.Number));
                Assert.Fail();
            }
            catch (ArgumentException) { }

            //Попытка переместить имеющееся в зоопарке животное в отсутствующий (несуществующий) вольер
            zoo.SettleAnimal(animal2, aviary1);
            var aviary4 = new Pool(PoolType.IndoorsPool);

            try
            {
                zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary4.Number));
                Assert.Fail();
            }
            catch (ArgumentException) { }

            //Попытка переместить имеющееся в зоопарке животное в отсутствующий вольер
            try
            {
                zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), aviary4);
                Assert.Fail();
            }
            catch (ArgumentException) { }

            //Попытка переместить имеющееся животное в имеющийся подходящий, но полностью заполненный вольер
            Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary2.Number)));

            //Попытка переместить имеющееся животное в имеющийся подходящий пустой, но закрытый вольер
            zoo.EvictAnimal(animal1);
            zoo.CloseAviary(aviary2.Number);
            Assert.AreEqual(false, zoo.TransferAnimal(zoo.FindAnimal(animal2.Id), zoo.FindAviary(aviary2.Number)));
        }